首先,建立Qt Gui Application项目。
1.控件
控件类型 控件名称 控件说明 文本
QLabel imagelabel 显示图片 TextLabel
QCommandlinkButton commandbuttonnext 显示下一张图片 下一张
2、添加资源
下载好显示的图片,放到项目目录的images文件夹(自己创建)下。
右击项目->添加新文件(New File)->QT->QT Resource file 右下角选择路径,name:images
单击“finish”。
然后选中“image.qrc”, 在编辑界面正下方,单击“Add"->"add prefix"添加路径前缀(即图片文件的路径),
之后,还在这里"Add files" 选择要添加的图片。
3、代码
1)头文件mainwindow.h, 类MainWindow中添加
private:
QStringList list; //图片列表
int currentImage; //当前图片编号
2) 在图形界面,右击commandlinkbuttonnext,选择”转到槽“, 添加槽函数
3) 在mainwindow.cpp中
添加头文件#include <QMessageBox> , #include <QFileDialog>
在构造函数中添加:
ui->setupUi(this);//这是系统自动生成的
//一下为添加代码
this->currentImage = 0;
//初始化图片列表
this->list<<"./images/1.jpg"<<"./images/2.jpg"<<"./images/3.jpg"; //注意路径的表示,否则出错
ui->imagelabel->setBackgroundRole(QPalette::Base);
ui->imagelabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
ui->imagelabel->setScaledContents(true);
resize(500, 400);
QString fileName = list.at(this->currentImage);
if(!fileName.isEmpty())
{
QImage image(fileName);
if(image.isNull())
{
QMessageBox::information(this, tr("Image Viewer"), tr("Cannot load %1.").arg(fileName));
return ;
}
ui->imagelabel->setPixmap(QPixmap::fromImage(image));
}
给槽函数on_commandlinkbuttonnext_clicked()添加:
if(this->currentImage == 2)
this->currentImage = 0;
else
this->currentImage++;
QString fileName = list.at(this->currentImage);
if(!fileName.isEmpty())
{
QImage image(fileName);
if(image.isNull())
{
QMessageBox::information(this, tr("Image Viewer"), tr("Cannot load %1.").arg(fileName));
return ;
}
ui->imagelabel->setPixmap(QPixmap::fromImage(image));
}
4.其他不变,运行可以看到效果。
5.注意事项:一定注意初始化时,路径名和”add prefix“ 时的路径名, 如果不成功,可以多次试验。