我写了一个库 (DLL)。 Java 代码使用我的 DLL 和 JNA。 在库中,我通过 QThread 派生类中的“new”创建了 Qtimer。
但是,我有以下错误:
ERROR: QTimer can only be used with threads started with QThread
在没有 QApplication/QCoreApplication 的情况下,我应该如何正确使用 QTimer 从非 Qt 线程调用?
最佳答案
不幸的是,据我所知,QTimer 需要 QCoreApplication。而且 QCoreApplication 必须在创建我看到的第一个 QObject 的线程中实例化。我所做的是实例化 QCoreApplication 一个使用 QtConcurrent::run 产生的新线程,并在那里实例化了我的 QObjects。我报告了一个简单的例子 here . QTimer 现在似乎工作正常。
关于java - 从非 Qt DLL (JNA) 使用 QTimer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10754308/