1.大體思路是使用qlabel 加載圖片,使用qtimer 定時,timeout 時更新圖片
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QTimer>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
path = "image/";
num = GetFileList(path).size();
i=j=k=l=0;
time=new QTimer();
connect(time,SIGNAL(timeout()),this,SLOT(showOnePic()));
connect(time,SIGNAL(timeout()),this,SLOT(showTwoPic()));
connect(time,SIGNAL(timeout()),this,SLOT(showThreePic()));
connect(time,SIGNAL(timeout()),this,SLOT(showFourPic()));
}
Widget::~Widget()
{
delete ui;
}
void Widget::showOnePic()
{
QImage image;
fileinfo = GetFileList(path).at(i);
if(!image.load(fileinfo.filePath()))
qDebug()<<"fail!";
ui->label->setPixmap(QPixmap::fromImage(image));
i++;
if(i == num)
i=0;
}
void Widget::showTwoPic()
{
QImage image;
fileinfo = GetFileList(path).at(j);
if(!image.load(fileinfo.filePath()))
qDebug()<<"fail!";
ui->label_2->setPixmap(QPixmap::fromImage(image));
j++;
if(j == num)
j=0;
}
void Widget::showThreePic()
{
QImage image;
fileinfo = GetFileList(path).at(k);
if(!image.load(fileinfo.filePath()))
qDebug()<<"fail!";
ui->label_3->setPixmap(QPixmap::fromImage(image));
k++;
if(k == num)
k=0;
}
void Widget::showFourPic()
{
QImage image;
fileinfo = GetFileList(path).at(l);
if(!image.load(fileinfo.filePath()))
qDebug()<<"fail!";
ui->label_4->setPixmap(QPixmap::fromImage(image));
l++;
if(l == num)
l=0;
}
void Widget::showPic()
{
QImage image;
path = "/qt_wj/showPic/image";
qDebug()<<GetFileList(path).size();
for(int i=0;i<GetFileList(path).size();i++){
fileinfo = GetFileList(path).at(i);
qDebug()<<fileinfo.filePath();
//qDebug()<<fileinfo.fileName();
if(!image.load(fileinfo.filePath()))
qDebug()<<"fail!!!!!!!!!!!!!!";
else{
qDebug()<<"success";
ui->label->setPixmap(QPixmap::fromImage(image));
//sleep(1);
//ui->label->clear();
}
}
}
QFileInfoList Widget::GetFileList(QString path)
{
QDir dir(path);
QFileInfoList file_list = dir.entryInfoList(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
QFileInfoList folder_list = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
for(int i = 0; i != folder_list.size(); i++)
{
QString name = folder_list.at(i).absoluteFilePath();
QFileInfoList child_file_list = GetFileList(name);
file_list.append(child_file_list);
}
return file_list;
}
void Widget::on_pushButton_clicked()
{
time->start(200);
}