有时候有些地方我们不得不干重复的事情,怎么办。不可能来个for,while无限循环吧,让程序一直卡在那里占cpu吧。那我们就用定时器吧,每秒做我们想做的事,这样才是硬道理。头文件- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
-
- #include <QMainWindow>
- #include <QTimer>
- #include <QDebug>
- class QTime;
- namespace Ui {
- class MainWindow;
- }
-
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
-
- public:
- explicit MainWindow(QWidget *parent = 0);
- ~MainWindow();
- QTimer *timer;
- int i;
- private:
- Ui::MainWindow *ui;
-
- protected slots:
- void timerDone();
- void slotTime();
- };
-
- #endif // MAINWINDOW_H
源文件
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
-
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- i=1;
- timer = new QTimer();
- this->connect(timer,SIGNAL(timeout()),this,SLOT(timerDone()));
-
- timer->start( 1000 ); //一秒钟后开始触发,然后一秒一次
-
- timer->singleShot(2000,this,SLOT(slotTime())); //2秒钟触发一次
- }
-
- MainWindow::~MainWindow()
- {
- delete ui;
- }
-
- void MainWindow::timerDone()
- {
- ui->label->setText(tr("%1").arg(i));
- i++;
- qDebug()<<"wyz========a:"<<i;
- }
-
- void MainWindow::slotTime()
- {
- i++;
- qDebug()<<"wyz========b:"<<i;
- }
效果:D:optQtOptqtime-build-desktop-Qt_4_7_4__qt4_7_0____debugqtime.exe 启动中...Init CriticalSection spin count wyz========a: 2 wyz========b: 3 wyz========a: 4 wyz========a: 5 wyz========a: 6 wyz========a: 7 wyz========a: 8 wyz========a: 9