2012-01-09 29 views
1
創建的hijackWindow()上下文

我正在開發使用Visual Studio 2010和cl編譯器的Windows 7的桌面Qt 4.7.1應用程序。使用OpenGL小部件。

前段時間我開始了我的應用程序初始化過程中接收到類似以下的人的消息:

hijackWindow() context created for QWidget(0x1c8f070, name = "x1") 1 
hijackWindow() context created for QGroupBox(0x1c8f5f8, name = "x2") 2 
hijackWindow() context created for QGroupBox(0x19f70b0, name = "x3") 3 
hijackWindow() context created for QGroupBox(0x19f9d40, name = "x4") 4 
hijackWindow() context created for QGraphicsView(0x19fae28, name = "x5") 5 

有什麼能爲這些消息的原因是什麼?我怎樣才能禁用窗口劫持,因爲它消耗了大量時間?

回答

0

耗時的問題在於使用opengl圖形系統而不是柵格。所以解決的辦法是在命令行中加入以下參數:

-graphicssystem raster 

或者用這個標誌來構建整個Qt。

+0

柵格子系統不是OpenGL,你問過。你的問題不是一個問題,只是一個調試聲明。但是,是的,你可以通過不使用OpenGL來避免這種情況:-D – 2012-01-14 16:29:07

+0

即使使用光柵圖形引擎,突然OpenGL小部件仍然工作正常) – Vladimir 2012-01-19 17:13:55

1

這只是Qt庫在創建窗口小部件的GL上下文時發出的調試消息。如果您使用Qt庫的發佈版本(它們必須使用定義的QT_NO_DEBUG_OUTPUTQT_NO_DEBUG宏來構建,這將禁用對qDebug的調用),我認爲這個消息不應該出現。

+0

我剛剛嘗試在發佈配置和運行中構建應用程序和庫 - 結果是相同的。 – Vladimir 2012-01-09 18:59:44

+0

@ DairT'arg:呃,自從我使用Qt以來已經很長時間了......現在看起來這些東西正在讓它發佈。爲了擺脫它,你必須安裝一個自定義的消息處理程序。看到http://developer.qt.nokia.com/doc/qt-4.8/qtglobal.html#qInstallMsgHandler – 2012-01-09 19:06:14

+0

我們有完全相同的Qt定製配置,相同的視覺工作室,相同的操作系統和相同的源代碼(它只是一個直接複製)在兩臺獨立的計算機上。指定的「劫持問題」只存在於其中的一個上。所以我想知道是什麼原因造成的? – Vladimir 2012-01-10 03:56:51