2012-08-17 179 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