[英]QTimer doesn't trigger
我正在嘗試使QTimer
運行,但它從未觸發。 我發現了有關計時器的其他問題,但問題始終是計時器超出范圍。 在我的小示例中,情況並非如此:
我在自定義QMainWindow
創建計時器,這是.h文件:
#include <iostream>
#include <QtWidgets/QMainWindow>
#include <QTimer>
class MyMainWindow : public QMainWindow {
Q_OBJECT;
private:
QTimer *mainTimer;
public slots:
void timerUpdate();
public:
MyMainWindow();
};
這是.cpp文件:
#include "MyMainWindow.h"
MyMainWindow::MyMainWindow() {
QMainWindow();
mainTimer = new QTimer(this);
connect(mainTimer, SIGNAL(timeout()), this, SLOT(update()));
mainTimer->start(1000);
std::cout << "Timer created.\n";
}
void MyMainWindow::timerUpdate() {
std::cout << "test";
}
最后,這是我的main.cpp:
#include <QtWidgets/QApplication>
#include "MyMainWindow.h"
int main(int argc, char* argv[]) {
QApplication app(argc, argv);
MyMainWindow mmw;
mmw.show();
return app.exec();
}
執行此代碼時,只會得到“創建計時器”的信息。 永遠不要“測試”。
有什么建議么?
您正在連接到SLOT(update())
,但您的函數稱為timerUpdate
。
使用更現代的Qt 5信號插槽連接語法 ,這將永遠不會發生,並且在編譯時會出錯。 您應該更喜歡使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.