【发布时间】:2023-03-14 08:25:01
【问题描述】:
我想编写一个应该由非 QT 应用程序加载的 DLL。结果,当我的 DLL 被加载时,我没有任何 QApplication/QCoreApplication。结果我的信号/插槽机制不起作用。
我在 Qt 论坛中进行了深入搜索,但还没有找到关于如何处理此类问题的好的答案。我创建了一个QThread 将我的QObjects 移动到该线程并创建了一个假QApplicationCore 并在QThread 的run() 函数中调用它的exec() 函数。这样我的信号槽机制就起作用了,但我对这种间接解决方案不满意。我应该能够从主非 Qt 线程的执行空间激活我的线程槽。使用此类 dll 插件的正确方法是什么?欢迎直接回答和阅读资源推荐。谢谢
注意:加载我的 DLL 的外部应用程序是一个 Windows 应用程序。这是第三方应用程序,我无法触摸它。
【问题讨论】: