0

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

QObject::startTimer:定时器只能用于以 QThread 启动的线程

并且计时器不运行。根据此处的回答,我的自定义类似乎没有检测到由 QGuiApplication 创建的 QEventLoop。

我的 main.cpp

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

我的课A.h

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

我的classA.cpp

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

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

4

1 回答 1

0

我可以通过更改我的 classA 和 QGuiApplication 的声明顺序来解决这个问题。看来任何QObject子类要检测QGuiApplication Eventloop,都必须在QGuiApplication之后声明。

我的 main.cpp:

...
QGuiApplication app(argc, argv);
...
classA objA;
...
于 2021-10-22T05:07:26.980 回答