2012-08-17 108 views
2

我写过一个Qt应用程序。
在Windows 7 x64/x32应用程序工作正常。
在Windows XP中qDebug()有很多消息。Windows上的Qt问题xp

QPixmap it is unsafe to use pixmap outside the GUI thread 

后,该应用程序崩溃与sigfault
但:
1)我没有在我的代码使用QPixmap在所有
2)我有创造一些类型的文件只有一个创建的线程(但是这错误发生在应用程序启动后几秒钟之后)。
3)我用QIcon(可能是它使用QPixmap)reinplecated QStyledItemDelegate(但没有外螺纹...只有插槽和报告状态ECT)
4)我已经重新实现QAbstractListModel处理我QStyledItemDelegate的信号
5)在使用Qt Designer创建的窗体中有一个与Iconed行动

的Qt版本4.8.1
一个工具栏,我甚至不能想象在那里我没有权利...
任何一个是否有任何建议?
由我自己解决
在QMainWindow的重新实现 我有QTimer用于更新2个QLabels
这是怎么一回事,因为如我想出QTimer误差为每个timout()信号创建线程
溶液I决定最适合我将重新实现带有信号dataChanged的Item类,它在QAbstractItemModel的重新实现中发送给插槽OnItemDataChanged。

回答

3

消息由src/gui/image/qpixmap.cpp中名为qt_pixmap_thread_test()的函数显示。

链接到调试Qt库(您可能需要构建它们)并在显示该警告的位置设置断点。至少你可以看到当时线程的情况。

此外,对于其他人谁可能会遇到这个问题,并正试图以错误搜索的利益,确切的错误信息是:

QPixmap: It is not safe to use pixmaps outside the GUI thread 
+0

THX的意见......我发现我的错误。 ..) – 2012-08-18 17:08:39

+1

@big_buka:如果可能的话,如果你解释这个问题是什么,那么可能会对遇到这个问题的其他人有所帮助。 – 2012-08-18 17:53:25

+0

更新后的第一篇文章 – 2012-08-18 18:55:24