QObject子类没有检测到QGuiApplication事件循环



当我尝试在从QObject派生的类中启动QTimer时,我得到警告

QObject::startTimer:计时器只能用于以QThread

启动的线程

和定时器不运行。根据这里的答案,我的自定义类似乎没有检测到QGuiApplication创建的QEventLoop。

我main.cpp

...
classA objA;
...
QGuiApplication app(argc, argv);
...

我classA.h

class classA : public QObject
{
Q_OBJECT
private: 
QTimer m_oTimer;
...

我classA.cpp

classA::classA()
{
...
m_oTimer.start(100);
...
}

如何在不创建新的QEventLoop的情况下解决这个问题?

我可以通过改变classA和QGuiApplication的声明顺序来解决这个问题。似乎对于任何QObject子类检测QGuiApplication Eventloop,它必须在QGuiApplication之后声明。

我main.cpp:

...
QGuiApplication app(argc, argv);
...
classA objA;
...

相关内容

  • 没有找到相关文章

最新更新