簡體   English   中英

QTimer不觸發

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM