.pro文件
#------------------------------------------------- # # Project created by QtCreator 2024-01-09T08:07:12 # #------------------------------------------------- QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = ObjectTimer TEMPLATE = app # The following define makes your compiler emit warnings if you use # any feature of Qt which has been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ main.cpp \ widget.cpp HEADERS += \ widget.h FORMS += \ widget.ui
.widget.h
#ifndef WIDGET_H #define WIDGET_H #include <QWidget> #define TIMEOUT 1 * 1000 namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); void timerEvent(QTimerEvent *event); private slots: void on_startButton_clicked(); void on_stopButton_clicked(); private: Ui::Widget *ui; int myTimerId; int picID; }; #endif // WIDGET_H
main.cpp
#include "widget.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); Widget w; w.show(); return a.exec(); }
widget.h
#include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); QPixmap pix("D:\\QTProject\\QtOnline\\1.jpg"); //创建一个pix对象,读取某个图片的地址 ui->label->setPixmap(pix); //设置ui界面的label标签显示pix这个地址的图片 } Widget::~Widget() { delete ui; } void Widget::on_startButton_clicked() { //开启定时器,返回定时器编号 myTimerId = this->startTimer(TIMEOUT); } void Widget::timerEvent(QTimerEvent *event){ if(event->timerId() != myTimerId) //如果当前的timerID不是现在的timerID,就不执行这个操作 return; QString path("D:\\QTProject\\QtOnline\\"); path += QString::number(picID); path +=".jpg"; //让读1,2,3,4,5的照片 QPixmap pix(path); ui->label->setPixmap(pix); picID++; if(5==picID) picID =1; } void Widget::on_stopButton_clicked() { this->killTimer(myTimerId); //定时器结束,结束定时器 }