QTimer定时器相册
控件设计

Widget.h
#define TIMEOUT 1*1000
private slots:
void on_startB_clicked(); //开始按钮
void timeoutSlot(); //自定义槽
void on_stopB_clicked(); //暂停按钮
void on_singleB_clicked(); //单次按钮
private:
Ui::Widget *ui;
QTimer *timer; //定义公用定时器
int picID; //张数
Widget.cpp
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//创建对象
timer = new QTimer;
//初始化赋值
picID = 2;
/*
* 初始化界面
*/
QImage img;
img.load("F:\\Hm\\Cpp\\workspace\\qt\\Qtime\\1.jpg");
ui->label->setPixmap(QPixmap::fromImage(img));
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_startB_clicked()
{
//启动定时器
timer->start(TIMEOUT);
//定时器触发槽
connect(timer,&QTimer::timeout,this,&Widget::timeoutSlot);
}
void Widget::timeoutSlot(){
//每次触发+1变更图片
QString path("F:\\Hm\\Cpp\\workspace\\qt\\Qtime\\");
path += QString::number(picID);
path += ".jpg";
QImage img;
img.load(path);
ui->label->setPixmap(QPixmap::fromImage(img));
//循环
picID++;
if(5 == picID){
picID = 1;
}
}
void Widget::on_stopB_clicked()
{
//线程暂停
timer->stop();
}
void Widget::on_singleB_clicked()
{
//自带单次触发槽函数
QTimer::singleShot(1000,this,SLOT(timeoutSlot()));
}
浙公网安备 33010602011771号