1.singleShot的用法 代碼: QTextEdit *testEdit = new QTextEdit("hello world"); testEdit->setMaximumHeight(20); QTimer::singleShot( 5*1000, testEdit, SLOT(cle ...
1.singleShot的用法
代碼:
QTextEdit *testEdit = new QTextEdit("hello world");
testEdit->setMaximumHeight(20);
QTimer::singleShot( 5*1000, testEdit, SLOT(clear()));
statusBar()->addWidget(testEdit);
解析:
QTimer在5秒後發出信號,testEdit接受信號後調用clear函數,清空testEdit內的內容。
singleShot只發出一次信號,單觸發定時器。
2. Qtimer的用法
代碼及註釋:
QLabel *label = new QLabel;
QTimer *timer = new QTimer( label ); // 產生一個定時器
connect( timer, SIGNAL(timeout()), label, SLOT(clear()) ); // 連接這個定時器的信號和槽,利用定時器的timeout(),從而觸發clear()槽函數
timer->start(5000); //開始定時器,並設定定時周期,每隔5秒就會重啟定時器,可以重覆觸發定時,除非你利用stop()將定時器關掉
timer->setSingleShot(true); // 僅僅啟動定時器一次
statusBar()->addWidget(label);
解析:
每5秒,清理label一次,而singleShot只清理一次。