Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在没有QT应用程序的情况下使用QTimer_C++_Qt_Timer - Fatal编程技术网

C++ 如何在没有QT应用程序的情况下使用QTimer

C++ 如何在没有QT应用程序的情况下使用QTimer,c++,qt,timer,C++,Qt,Timer,我想在我的常规类中使用QTimer(没有QT应用程序,但从QTimer派生)。但当我尝试这个: 标题: #include <qtimer.h> QTimer* m_timer; public slots: void UpdateClock(); 计时器从不跳入UpdateLock方法!你知道我为什么和如何解决这个问题吗 谢谢 QTimer取决于qcore应用程序。如果不启动QCore应用程序,则不会激活QTimer。(QApplication继承QCoreApplicati

我想在我的常规类中使用QTimer(没有QT应用程序,但从QTimer派生)。但当我尝试这个:

标题:

#include <qtimer.h>
QTimer* m_timer;
public slots:
    void UpdateClock();
计时器从不跳入UpdateLock方法!你知道我为什么和如何解决这个问题吗


谢谢

QTimer取决于qcore应用程序。如果不启动QCore应用程序,则不会激活QTimer。(QApplication继承QCoreApplication并通常使用。)

如果要在Qt中使用信号和插槽,则需要一个事件循环来处理信号并分派它们

通常,在main.cpp中,您有如下内容:

int main( int argc, char** argv )
{
    QApplication app(argc, argv);
    ...
    return app.exec(); // the event loop is started and runs here
}
如果不需要GUI,可以使用

QCoreApplication
您还可以使用以下方法创建自己的事件循环:

QEventLoop

并仅处理QTimer事件。但是,您仍然需要创建一个QApplication。

哦,那太糟糕了,因为我没有GUI。那么我怎样才能得到一个(纽约)计时器呢。GUI应用程序使用QApplication,QCoreApplication是为您准备的。我的测试应用程序(实例化我的类)是QApplication,但我的类不应该使用/控制计时器。那么,我如何仍然使用计时器呢?使用QCoreApplication。但是我如何使用它呢?我的类中没有主函数如果你的应用程序是基于事件的,那么就链接到qt并按照答案给出的建议进行操作。否则,为什么不直接使用
sleep()
谢谢,但是我没有main方法,那么我如何在我的类中使用它呢?我有一个main方法,但只是在TestApplication中,我希望计时器在我的类中。只需在TestApplication的main方法中使用QCoreApplication,或者在main.cpp所在的位置使用QCoreApplication。之后,您可以在代码中的任何地方使用QTime:-)我的TestApplication是一个QApplication,它通过接口使用我的类。在TestApplication项目中,我可以轻松地使用时间,但当我想在类中创建时间时,它不会调用Update方法:(
QEventLoop