当我尝试在从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;
...