日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

_ZNote_Qt_定时器的总结

發布時間:2025/4/9 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 _ZNote_Qt_定时器的总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Qt中實現定時器有兩種方法.

一種是使用QObject類定時器;一種是使用QTimer類定時器.(定時器的精度依賴于操作系統和硬件,大多數平臺支持20ms)

1,QObject類定時器.

通過QObject::startTimer(),可以把一個一毫秒為單位的時間間隔作為參數來開始定時器,這個函數返回一個唯一的整數定時器的標識符。這個定時器開始就會在每一個時間間隔"觸發",直到明確的使用這個定時器的標識符來調用QObject::killTimer()結束。?當定時器觸發時,應用程序會發送一個QTimerEvent。在事件循環中,處理器按照事件隊列的順序來處理定時器事件。當處理器正忙于其它事件處理時,定時器就不能立即處理。

?

int QObject::startTimer(int interval); //開始一個定時器并返回定時器ID,如果不能開始一個定時器,將返回0。 //定時器開始后,每隔interval毫秒間隔將觸發一次超時事件,直到killTimer()被調用來刪除定時器。 //如果interval為0,那么定時器事件每次發生時沒有窗口系統事件處理。

?

?

?

virtual void QObject::timerEvent(QTimerEvent *event); // 虛函數timerEvent()被重載來實現用戶的超時事件處理函數。 // 如果有多個定時器在運行,QTimerEvent::timerId()被用來查找指定定時器,對其進行操作。 // 當定時器事件發生時,虛函數timerEvent()隨著QTimerEvent事件參數類一起被調用,重載這個函數可以獲得定時器事件。

?

?

?

void killTimer(int id); //通過定時器標識符來殺死定時器。

?

?

實例:

// .h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>namespace Ui { class MainWindow; }class MainWindow : public QMainWindow {Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private slots:void on_pushButton_clicked();private:void timerEvent(QTimerEvent *t);Ui::MainWindow *ui;int m_nTimerId1;int m_nTimerId2;int m_nTimerId3; };#endif // MAINWINDOW_H/ .cpp ///#include "mainwindow.h" #include "ui_mainwindow.h" #include <QtCore> #include <QDebug>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui->setupUi(this);m_nTimerId1 = startTimer(1000);m_nTimerId2 = startTimer(5000);m_nTimerId3 = startTimer(10000);//有教程說直接按照順序,幾個定時器,就返回幾.但實際上并不一定這樣. }MainWindow::~MainWindow() {delete ui; }void MainWindow::timerEvent(QTimerEvent *t)//定時器時間 {int id = t->timerId();qDebug() <<id;if(id == m_nTimerId1) ui->label->setText(tr("每秒產生一個隨機數:%1").arg(qrand()%10));if(id == m_nTimerId2) ui->label_2->setText(tr("5秒后軟件將關閉"));if(id == m_nTimerId3) qApp->quit();/*switch(t->timerId())//判斷定時器的句柄{//qrand(),可以產生隨機數//qrand()%10可以產生0~9之間的隨機數//要想產生100以內的隨機數就得%100case 2:ui->label->setText(tr("每秒產生一個隨機數:%1").arg(qrand()%10));break;case 3:ui->label_2->setText(tr("5秒后軟件將關閉"));break;case 4:qApp->quit();break;//退出系統}*/ }void MainWindow::on_pushButton_clicked() {if(m_nTimerId1 != 0)killTimer(m_nTimerId1);if(m_nTimerId2 != 0)killTimer(m_nTimerId2);if(m_nTimerId2 != 0)killTimer(m_nTimerId2); }

 實現效果:

2,QTimer類實現

QTimer類定時器是QObject類定時器的擴展版或者說升級版,因為它可以提供更多的功能。比如說,它支持單次觸發和多次觸發。

使用QTimer類定時器的步驟:

(1)創建一個QTimer定時器實例:QTimer *timer = new QTimer(this);
(2)連接超時信號與槽:connect(timer, SIGNAL(timeout()), this, SLOT(testFunc()));
(3)啟動定時器start(); 定時器有兩種??start(int time)? 和??setSingleShot(true)? 前者表示重復觸發,除非stop關閉. 后者僅僅啟動一次.
(4)適時關閉定時器:stop();
(5)刪除定時器實例:delete timer;

?

例如:

?

///// .h // #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QtCore> #include <QMainWindow>class MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent = 0);~MainWindow();private slots:void timerUpdate(); private:QTimer *timer;int timerInt; };#endif // MAINWINDOW_H/// .cpp / #include "mainwindow.h" #include <QDebug>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) {timer = new QTimer(this); //新建定時器 connect(timer,SIGNAL(timeout()),this,SLOT(timerUpdate()));//關聯定時器計滿信號和相應槽函數timer -> start(1000);//定時器開始,1000ms觸發一次timerInt = 0; }MainWindow::~MainWindow() {}void MainWindow::timerUpdate() {QDateTime time = QDateTime::currentDateTime();//獲取系統現在的時間QString str = time.toString("yyyy-MM-dd hh:mm:ss dddd");//設置系統時間顯示格式// ui->label->setText(str);//在標簽上顯示時間qDebug() << str;if(timerInt++ == 5){if(timer ->isActive()){timer -> stop();//停止運行 }} }

?

?

?

?

?

?

?

?

 

轉載于:https://www.cnblogs.com/zpsoe/p/7080697.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的_ZNote_Qt_定时器的总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美精品乱码久久久久久 | 欧美亚洲视频 | 国产精品一区二区三区线羞羞网站 | 日本青草视频 | 瑟瑟视频网站 | 在线观看成人免费视频 | 黄色大片一级片 | 日本涩涩网站 | 国产一区二区三区在线免费观看 | 国产视频你懂的 | 69国产精品 | 天堂av中文字幕 | 美女国产精品 | 91国自啪| av在线网址观看 | 日本免费在线视频观看 | 野外做受又硬又粗又大视频√ | 一级黄色片在线免费观看 | 臭脚猛1s民工调教奴粗口视频 | 4438亚洲最大 | 日韩av网站在线 | 四虎在线视频 | 寡妇激情做爰呻吟 | 一区二区三区黄色片 | 日韩小视频 | 久久桃色 | jizz一区| 人妻熟女一区二区三区 | 亚洲欧美激情一区二区三区 | 一卡二卡精品 | 欧美久久久久久久久中文字幕 | 狼人精品一区二区三区在线 | 在线播放成人 | 少妇精品一区二区 | 国产精品视频播放 | 春宵av| 欧美激情在线一区二区 | 毛片网站在线看 | 精品国产综合 | 久久久久一 | 国产污视频在线看 | 中文字幕av资源 | 看片网站在线观看 | 韩国三级视频在线观看 | 国产伦精品一区二区三区免.费 | 青草福利在线 | 亚洲阿v天堂| 少妇毛片| 黄色免费一级 | 国产ts三人妖大战直男 | 国产白浆一区二区 | 窝窝午夜视频 | 国产一区二区三区播放 | 色天使在线视频 | 韩国三级hd中文字幕有哪些 | 69pao| 午夜精品在线视频 | 青青视频在线免费观看 | 精品成人中文无码专区 | 男女日批在线观看 | 国产九九九精品 | 毛片基地站| 我要色综合天天 | 欧美怡春院 | 熟妇高潮一区二区高潮 | www日韩欧美 | 国产av天堂无码一区二区三区 | 青青草精品在线 | 成年人视频在线播放 | 国产一区二区三区91 | 中国一级特黄毛片 | 精品一区二区三区成人免费视频 | 日本一区二区视频 | 日韩有码视频在线 | 久久久久亚洲av无码专区体验 | 国内激情 | 成人亚洲精品 | 美女又爽又黄免费 | 综合性色| 日韩有码专区 | 日本在线观看一区二区三区 | 亚洲一区二区三区在线观看视频 | 亚洲视频网站在线 | 男女日批网站 | 男人爱看的网站 | 婷婷五月色综合 | 一区二区日本 | 欧美爱爱网址 | 日本一区二区精品视频 | 亚洲综合图色40p | 97理伦| 丝袜av电影 | 国产在线一卡二卡 | 日韩高清影视 | 啪啪.com | 欧洲亚洲成人 | 永久免费在线观看视频 | 亚洲国产日韩在线一区 | 久操国产在线 |