# ifndef WIDGET_H
# define WIDGET_H # include <QWidget> QT_BEGIN_NAMESPACE
namespace Ui { class Widget ; }
QT_END_NAMESPACEclass Widget : public QWidget
{ Q_OBJECTpublic : Widget ( QWidget * parent = nullptr ) ; virtual void timerEvent ( QTimerEvent* event) ; ~ Widget ( ) ; private slots: void on_startTimer_clicked ( ) ; void on_killTimer_clicked ( ) ; private : Ui:: Widget * ui; int eventId; int pictureId= 1 ;
} ;
# endif # include "widget.h"
# include "ui_widget.h" # define TIME_OUT 1 * 1000
Widget :: Widget ( QWidget * parent) : QWidget ( parent) , ui ( new Ui:: Widget)
{ ui-> setupUi ( this ) ; QString path ( "D:\\workspace\\qt\\Timer\\" ) ; path += QString :: number ( this -> pictureId) + ".jpg" ; QPixmap pix ( path) ; ui-> label-> setPixmap ( pix) ;
} Widget :: ~ Widget ( )
{ delete ui;
} void Widget :: on_startTimer_clicked ( )
{ this -> eventId = this -> startTimer ( TIME_OUT) ; } void Widget :: timerEvent ( QTimerEvent* event) { if ( event-> timerId ( ) == this -> eventId) { QString path ( "D:\\workspace\\qt\\Timer\\" ) ; path += QString :: number ( this -> pictureId) + ".jpg" ; QPixmap pix ( path) ; ui-> label-> setPixmap ( pix) ; this -> pictureId++ ; if ( this -> pictureId == 5 ) { this -> pictureId = 1 ; } }
} void Widget :: on_killTimer_clicked ( )
{ this -> killTimer ( this -> eventId) ;
}