帮我用qt写一个简易的电子相册
时间: 2023-06-27 09:01:43 浏览: 112
好的,以下是一个简单的电子相册的Qt代码示例:
```cpp
#include <QtWidgets>
class PhotoAlbum : public QWidget {
public:
PhotoAlbum(QWidget *parent = nullptr)
: QWidget(parent) {
// 创建布局
QVBoxLayout *layout = new QVBoxLayout;
setLayout(layout);
// 创建标签并添加到布局中
QLabel *label = new QLabel;
layout->addWidget(label);
// 创建按钮并添加到布局中
QHBoxLayout *buttonLayout = new QHBoxLayout;
QPushButton *prevButton = new QPushButton(tr("上一张"));
QPushButton *nextButton = new QPushButton(tr("下一张"));
buttonLayout->addWidget(prevButton);
buttonLayout->addWidget(nextButton);
layout->addLayout(buttonLayout);
// 设置图片文件名列表
QStringList fileNames = {"photo1.jpg", "photo2.jpg", "photo3.jpg"};
// 将第一张图片显示在标签中
currentPhotoIndex = 0;
QPixmap photo(fileNames[currentPhotoIndex]);
label->setPixmap(photo);
// 连接按钮的信号槽
connect(prevButton, &QPushButton::clicked, this, &PhotoAlbum::showPrevPhoto);
connect(nextButton, &QPushButton::clicked, this, &PhotoAlbum::showNextPhoto);
}
private:
int currentPhotoIndex;
void showPrevPhoto() {
currentPhotoIndex--;
if (currentPhotoIndex < 0) {
currentPhotoIndex = 0;
}
QLabel *label = findChild<QLabel *>();
QPixmap photo(QString("photo%1.jpg").arg(currentPhotoIndex + 1));
label->setPixmap(photo);
}
void showNextPhoto() {
currentPhotoIndex++;
if (currentPhotoIndex >= 3) {
currentPhotoIndex = 2;
}
QLabel *label = findChild<QLabel *>();
QPixmap photo(QString("photo%1.jpg").arg(currentPhotoIndex + 1));
label->setPixmap(photo);
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
PhotoAlbum album;
album.show();
return app.exec();
}
```
这个简单的电子相册包括一个标签和两个按钮。标签用于显示当前的照片,按钮用于切换到上一张或下一张照片。该应用程序只显示三张图片,但你可以根据需要添加更多的图片。
阅读全文