2015-09-11 37 views
0

我有一個很奇怪的問題。該應用程序基於Qt C++。有一個TabWidget的選項卡是動態創建的。該選項卡包含ActiveX小部件中的QtMainWindow。當多個應用程序啓動時,選定的工作正常。但是當選中另一個選項卡時,它將變得無法響應。 當我最小化應用程序,然後再次最大化,然後該標籤開始工作正常。我嘗試了setFocus,activateWindow,showNormal和setActiveWindow,但沒有任何工作。Qt在TabWidget上的Activex主窗口變得無響應

有人可以幫我解決這個問題嗎?

回答

0

應用程序變得無響應的最可能的原因是拖延主線程上的執行。通過運行項目/或附加到Visual Studio調試器(比Qt Creator使用的調試器更好)嘗試讓您的應用處於無響應狀態。現在看一下Main Thread in Threads視圖(選擇一個),同樣看看Call Stack視圖。執行失敗的地方在哪裏?

輸出視圖中的日誌也有助於重新創建如何到達那裏的上下文。你可以在那裏看到Qt和你自己的調試輸出。

0

在調試過程中,我發現應用程序並未同步,因爲缺少WA_Mapped屬性。我的問題與以下問題恰恰相反。當我在最小化後使用最大化時,該應用程序曾經變得快速響應。最後在不同的地方設置屬性WA_Mapped(試錯n錯誤)解決了這個問題。

widgets freezing after minimise window

感謝@AlexanderVX響應。