Qt遍历指定文件夹下图片并显示

 

义文件夹路径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

  • 16
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值