2

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

QPixmap it is unsafe to use pixmap outside the GUI thread

之后,应用程序因 sigfault 崩溃,
但:
1)我根本不在QPixmap我的代码中使用
2)我只有一个创建的线程用于创建某种类型的文件(但此错误发生在应用程序启动后几秒钟后)。
3) 我在 reinplecated 中使用QIcon(可能是它使用) (但没有外部线程......只有用于报告状态等的插槽和信号) 4)我重新实现了 QAbstractListModel 来处理我的 5)在使用 Qt 设计器创建的表单上有一个带有图标操作 Qt 版本 4.8.1的工具栏 我什至无法想象我哪里不对... 有没有人有任何建议?自己解决QPixmapQStyledItemDelegate
QStyledItemDelegate






在 QMainWindow 重新实现中,我有 QTimer 用于更新 2 个 QLabels
那是错误,因为我发现 QTimer 为每个 timout() 信号创建一个线程
我决定对我最好的解决方案是使用发送 ot 的信号 dataChanged 重新实现 Item 类重新实现 QAbstractItemModel 中的插槽 OnItemDataChanged

4

1 回答 1

3

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

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

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

QPixmap: It is not safe to use pixmaps outside the GUI thread
于 2012-08-17T08:17:22.897 回答