Windows XP上的Qt问题

时间:2012-08-17 07:46:58

标签: windows qt

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

QPixmap it is unsafe to use pixmap outside the GUI thread

之后应用程序崩溃与sigfault
但是:
1)我根本不在代码中使用QPixmap 2)我只有一个创建的线程用于创建某种类型的文件(但是这个错误发生在应用程序启动几秒后)。
3)我在reinplecated QIcon中使用QPixmap(可能是它使用QStyledItemDelegate)(但是没有外部线程......只有用于报告状态e.c.t的插槽和信号)
4)我重新实现了QAbstractListModel来处理我的QStyledItemDelegate
5)在使用Qt设计器创建的表单上,有一个带有图标操作的工具栏

Qt版本4.8.1
我甚至无法想象我不对的地方...... 有没有人有任何建议? 自己解决
在QMainWindow重新实现我有QTimer更新2 QLabels
这是错误,因为我发现QTimer为每个timout()信号创建一个线程 我决定最好的解决方案是重新实现Item类的信号dataChanged,它是在QAbstractItemModel重新实现时发送的插槽OnItemDataChanged

1 个答案:

答案 0 :(得分:3)

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

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

此外,为了其他可能遇到此问题并尝试搜索错误的人的利益,确切的错误消息是:

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