windowsxp上的Qt问题

windowsxp上的Qt问题,windows,qt,Windows,Qt,我已经编写了一个Qt应用程序。 在Windows 7 x64/x32应用程序上工作正常。 在Windows XP上的qDebug()中有许多消息 QPixmap it is unsafe to use pixmap outside the GUI thread 之后,应用程序崩溃,出现SIGFULT 但是: 1) 我根本不在代码中使用QPixmap 2) 我只有一个创建线程用于创建某种类型的文件(但此错误在应用程序启动后几秒钟发生)。 3) 我在重新编译的QStyledItemDelegate

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

QPixmap it is unsafe to use pixmap outside the GUI thread
之后,应用程序崩溃,出现SIGFULT
但是:
1) 我根本不在代码中使用
QPixmap

2) 我只有一个创建线程用于创建某种类型的文件(但此错误在应用程序启动后几秒钟发生)。
3) 我在重新编译的
QStyledItemDelegate
中使用了
QIcon
(可能它使用了
QPixmap
)(但没有外部线程…只有用于报告状态e.c.t的插槽和信号)。
4) 我已重新实现QAbstractListModel以处理我的
QStyledItemDelegate

5) 在使用Qt designer创建的表单上,有一个带有图标操作的工具栏

Qt版本4.8.1
我甚至无法想象我哪里不对…
有人有什么建议吗?
自己解决
在QMainWindow重新实现中,我有用于更新2个Qlabel的QTimer
这就是错误所在,因为我发现QTimer会为每个timout()信号创建一个线程

我认为最适合我的解决方案是使用信号dataChanged重新实现Item类,该信号dataChanged在重新实现QAbstractItemModel时发送到插槽OnItemDataChanged

消息通过src/gui/image/qpixmap.cpp中名为
qt\u pixmap\u thread\u test()
的函数显示

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

此外,为了方便可能遇到此问题并试图搜索错误的其他人,确切的错误消息如下:

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

@big_buka:如果可能的话,如果你解释一下问题所在,可能会对其他遇到这个问题的人有所帮助。