windows – 没有QApplication或QCoreApplication的信号插槽连接
发布时间:2020-12-14 03:53:12 所属栏目:Windows 来源:网络整理
导读:我想编写一个应该由非QT应用程序加载的DLL.因此,当我的DLL加载时,我没有任何QApplication / QCoreApplication.结果我的信号/插槽机制无法正常工作. 我在Qt论坛深入搜索,但还没有找到一个关于如何处理这样一个问题的好答案.我创建了一个QThread将我的QObjects
我想编写一个应该由非QT应用程序加载的DLL.因此,当我的DLL加载时,我没有任何QApplication / QCoreApplication.结果我的信号/插槽机制无法正常工作.
我在Qt论坛深入搜索,但还没有找到一个关于如何处理这样一个问题的好答案.我创建了一个QThread将我的QObjects移动到该线程并创建了一个假的QApplicationCore并在QThread的run()函数中调用了它的exec()函数.这样我的信号槽机制就可以工作,但我对这种间接解决方案不满意.我应该能够从主非Qt线程的执行空间激活我的线程槽.使用这种dll插件的正确方法是什么?欢迎直接答案和阅读源重新考试.谢谢 注意:加载我的DLL的外部应用程序是一个Windows应用程序.这是第三方应用程序,我无法触摸它. 解决方法
Qt信号& slot需要运行事件循环.您必须在QObject存在的线程中运行事件循环.当然你不能在你的应用程序的主线程中运行它(因为它不使用Qt),所以,正确,启动QThread,将你的QObject移动到这个线程(或者在run()方法中创建这些对象)并运行exec( )在thread的run()方法中是一个正确的解决方案.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Windows – 禁用GPO拒绝域管理员登录
- windows-server-2003 – 在Windows Server 2003中自动连接到
- .net – 如何与我自己的Windows服务进行安全通信
- UWP(Windows 10)XAML中的WebBrowser控件
- 如何在Windows应用程序中对加扰的数据包进行逆向工程?
- Windows – 终端服务器/ Citrix XenApp替代方案?
- 使用PowerShell管理Windows 2003 Active Directory域?
- 数据绑定 – WinJS ListView和模板绑定
- win10 桌面设置为远程桌面
- windows下用libevent 开发一个echo服务