2

Qt アプリケーションを作成しました。
Windows 7 x64/x32 アプリでは問題なく動作します。
Windows XP では、qDebug()多くのメッセージが表示されます。

QPixmap it is unsafe to use pixmap outside the GUI thread

その後、アプリは sigfault でクラッシュします
が、
1)QPixmapコードではまったく使用して
いません 2) 何らかの種類のファイルを作成するためのスレッドが 1 つしか作成されていません (ただし、このエラーは、アプリの起動後数秒後に発生します)。
3)再実装された(ただし、外部スレッドはありません... 状態を報告するためのスロットとシグナルのみです) 4) QIconQAbstractListModel を再実装して、自分の 5) Qt デザイナーで作成されたフォームについてアイコン化されたアクション Qt バージョン 4.8.1を備えたツールバーがあります 。どこが 正しくないか想像もできませんでした... 自力で解決QPixmapQStyledItemDelegate
QStyledItemDelegate






QMainWindow の再実装では、2 つの QLabels を更新するための QTimerがあります。
これは、QTimer が timout() シグナルごとにスレッドを作成することがわかったため、エラー
でした。 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 に答える