• 5264阅读
  • 7回复

[提问]QMessageBox问题 [复制链接]

上一主题 下一主题
离线morriszy
 

只看楼主 倒序阅读 楼主  发表于: 2011-06-15
线程讨论区没有了吗?
QMessageBox在线程中是不是不能使用
VS2010+Qt4.7.0
离线dbzhang800

只看该作者 1楼 发表于: 2011-06-15
回 楼主(morriszy) 的帖子
多看看Manual吧

Although QObject is reentrant, the GUI classes, notably QWidget and all its subclasses, are not reentrant. They can only be used from the main thread.

离线morriszy

只看该作者 2楼 发表于: 2011-06-15
回 1楼(dbzhang800) 的帖子
Thanks a lot ! dbzhang800
VS2010+Qt4.7.0
离线XChinux

只看该作者 3楼 发表于: 2011-06-15
所有Ui部件要在主线程中的。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线morriszy

只看该作者 4楼 发表于: 2011-06-16
Thanks for XChinux's reply!
VS2010+Qt4.7.0
离线morriszy

只看该作者 5楼 发表于: 2011-06-16
回 4楼(morriszy) 的帖子
我还有一个问题,我次线程中是一个耗时的测试程序,测试状况会通过主线程显示出来,之间我全部使用的信号和槽通讯,不知是否有其它好的方法?呵呵,新手!
VS2010+Qt4.7.0
离线diyuanbo

只看该作者 6楼 发表于: 2011-06-16
据我观察,这种情况使用信号和槽是比较合适的.高版本QT中,信号和槽的连接引入Qt::QueuedConnection这种连接类型,可用于不同线程之间传递信息.
当然还可以使用Event方式,QCoreApplication::postEvent ( QObject * receiver, QEvent * event )
离线morriszy

只看该作者 7楼 发表于: 2011-06-16
回 6楼(diyuanbo) 的帖子
Thank you,diyuanbo!
VS2010+Qt4.7.0
快速回复
限100 字节
 
上一个 下一个