gpt4 book ai didi

c++ - QTimer 不触发

转载 作者:行者123 更新时间:2023-11-28 02:15:16 26 4
gpt4 key购买 nike

我试图让 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();
}

当我执行这段代码时,我只得到“Timer created”。永远不要“测试”。

有什么建议吗?

最佳答案

您正在连接到 SLOT(update()),但您的函数名为 timerUpdate

使用更现代的Qt 5 signal-slot connection syntax ,那永远不会发生,你会在编译时得到一个错误。您应该更喜欢使用它。

关于c++ - QTimer 不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34213079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com