义文件夹路径i,筛选指定文件后缀,得到文件名的集合,鼠标点击在label上循环显示图片。
.h文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QDir>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = nullptr);
~Widget();
private:
QDir dir;
int ImageCount;
protected:
bool eventFilter(QObject *obj, QEvent *event);
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
.cpp 文件
#include "widget.h"
#include "ui_widget.h"
#include <QList>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QString ImagePath = "./myPic";//文件夹路径
dir.setPath(ImagePath);
QStringList ImageList;
ImageList << "*.bmp" << "*.jpg" << "*.png";//向字符串列表添加图片类型
dir.setNameFilters(ImageList);//获得文件夹下图片的名字
ImageCount = dir.count();//获得dir里名字的个数,也表示文件夹下图片的个数
ui->label->installEventFilter(this);
QString ImageName = "./myPic/"+dir[0];
QImage image(ImageName);
ui->label->setPixmap(QPixmap::fromImage(image));
this->setWindowFlags(Qt::FramelessWindowHint);
}
Widget::~Widget()
{
delete ui;
}
bool Widget::eventFilter(QObject *obj, QEvent *event)
{
if(obj==ui->label&&event->type()==QEvent::MouseButtonPress)
{
static int flag=1;
if(flag>ImageCount-1)
{
flag=0;
return 1;
}
QString ImageName = "./myPic/"+dir[flag];
QImage image(ImageName);
ui->label->setPixmap(QPixmap::fromImage(image));
++flag;
return 1;
}
}
xu'na'hun