qt ui怎麼定時 Qt 定時器Timer使用

2021-10-17 02:10:17 字數 2994 閱讀 3895

1.新建gui工程,在主介面上新增乙個標籤label,並設定其顯示內容為「0000-00-00 00:00:00 星期日」。

2.在mainwindow.h中新增槽函式宣告。

private slots:

void timerupdate();

3.在mainwindow.cpp中新增**。

新增#include 的標頭檔案包含,這樣就包含了qtcore下的所有檔案。

建構函式裡新增**:

qtimer *timer = new qtimer(this);

//新建定時器

connect(timer,signal(timeout()),this,slot(timerupdate()));

//關聯定時器計滿訊號和相應的槽函式

timer->start(1000);

//定時器開始計時,其中1000表示1000ms即1秒

4.然後實現更新函式。

void mainwindow::timerupdate()

qdatetime time = qdatetime::currentdatetime();

//獲取系統現在的時間

qstring str = time.tostring("yyyy-mm-dd hh:mm:ss dddd");

//設定系統時間顯示格式

ui->label->settext(str);

//在標籤上顯示時間

5.執行程式。

mainwindow.h

#ifndef mainwindow_h

#define mainwindow_h

#include

namespace ui {

class mainwindow;

class mainwindow : public qmainwindow

q_object

public:

explicit mainwindow(qwidget *parent = 0);

~mainwindow();

private:

void timerevent(qtimerevent *);

private:

ui::mainwindow *ui;

private slots:

void on_btnlogin_clicked();

#if 0

void timerupdate();

#endif

#endif // mainwindow_h

mainwindow.cpp

#include

#include

#include

#include "mainwindow.h"

#include "ui_mainwindow.h"

mainwindow::mainwindow(qwidget *parent) :

qmainwindow(parent),

ui(new ui::mainwindow)

ui->setupui(this);

#if 0

qtimer *timer = new qtimer(this);

connect(timer, signal(timeout()), this, slot(timerupdate()));

timer->start(1000);

#else

qsrand(time(0));

starttimer(1000);// 返回值為1, 即timerid

starttimer(5000);// 返回值為2

starttimer(10000);// 返回值為3

#endif

mainwindow::~mainwindow()

delete ui;

void mainwindow::on_btnlogin_clicked()

qmessagebox::information(this, "caption", tr("hello你好嗎"), qmessagebox::ok);

#if 0

void mainwindow::timerupdate()

qdatetime time = qdatetime::currentdatetime();

qstring str = time.tostring("yyyy-mm-dd hh:mm:ss dddd");

ui->lblcurdate->settext(str);

#else

void mainwindow::timerevent(qtimerevent *t)

switch(t->timerid())

case 1:

qdatetime time = qdatetime::currentdatetime();

qstring str = time.tostring("yyyy-mm-dd hh:mm:ss dddd");

ui->lblcurdate->settext(str);

ui->lbl1->settext(tr("每秒產生乙個隨機數: %1").arg(qrand() % 10));

ui->lbl1->adjustsize();

break;

case 2:

ui->lbl2->settext(tr("5秒後軟體將關閉"));

ui->lbl2->adjustsize();

break;

case 3:

break;

#endif

main.cpp

#include

#include

#include "mainwindow.h"

int main(int argc, char *ar**)

qtextcodec::setcodecfortr(qtextcodec::codecforname("utf-8"));

mainwindow w;

w.show();

return a.exec();

qt ui怎麼定時 Qt基礎教程之定時器及實現

就是計算定時器開始到停止持續的時間長度,計時器是 qtime類。圖 定時器例項程式執行示意圖 qtimer 主要的屬性是 interval 是定時中斷的週期,單位毫秒。qtimer 主要的訊號是 timeout 在定時中斷時發射此訊號,要想在定時 中斷裡做出響應,這就需要編寫 timeout 訊號的...

Qt之定時器

qt中定時器的使用有兩種方法,一種是使用qobject類提供的定時器,還有一種就是使用qtimer類。定時器類qtimer提供當定時器觸發的時候發射乙個訊號的定時器,它提供只觸發一次的超時事件。1 啟動定時器 int m timerid starttimer 300 啟動乙個qtimer型別的定時器...

Qt定時器問題

1.如果此類繼承於qobject,可以直接呼叫以下函式 int qobject starttimer int interval,qt timertype timertype qt coarsetimer 此函式開啟乙個定時器,但只返回該定時器的編號,我們無法獲取定時器物件 即使建立了定時器物件也不應...