,pro
#------------------------------------------------- # # Project created by QtCreator 2024-01-09T08:32:25 # #------------------------------------------------- QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = QTimer 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
widge.h
#ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include<QTimer> #define TIMEOUT 1 * 1000 namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); private slots: void on_startButton_clicked(); void timeoutSlot(); void on_stopButton_clicked(); void on_singleButton_clicked(); private: Ui::Widget *ui; QTimer *timer; 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,cpp
#include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); timer = new QTimer; picId =2; QImage img; //加載對象,下邊是路徑 img.load("D:\\QTProject\\QtOnline\\1.jpg"); ui->label->setPixmap(QPixmap::fromImage(img)); connect(timer,&QTimer::timeout,this,&Widget::timeoutSlot); //定時器時間到,發出timeout信號 } Widget::~Widget() { delete ui; } void Widget::on_startButton_clicked() { timer->start(TIMEOUT); //定時器開始運轉,一秒鐘發出一個信號 } void Widget::timeoutSlot() { QString path("D:\\QTProject\\QtOnline\\"); 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_stopButton_clicked() { timer->stop(); } void Widget::on_singleButton_clicked() { QTimer::singleShot(100,this,SLOT(timeoutSlot())); }