Qt 應用程式負載100 的問題

2021-06-27 17:22:47 字數 454 閱讀 6410

查閱log輸出並分析現象,基本上可以得出結論 qt的定時器失效了,導致程式在執行的過程中,凡是依賴qtimer所做的流程會阻塞 。正常情況下qt的定時器是好用的,也是很高效的。為什麼會出現這樣的情況呢。

經過分析log ,出現了 下面一句warning:

在谷歌中搜尋 發現這是乙個qt的bug :

this won't be fixed properly until 4.8.

meanwhile (for 4.7.3) the warning has been disabled.

既然如此,查閱**,發現了delete qtimer的語句。

由於是qt自己進行的封裝,把c下較為複雜的定時器timer轉變為很簡單的qt類,那麼在刪除的時候也應該採用qt的刪除機制

下面有較為詳細的分析

所以,在使用qt類介面的時候,要盡可能的使用它的使用規範,而不應該或儘量減少delete 

Qt 發布應用程式

qt 官方開發環境使用的動態鏈結庫方式,在發布生成的exe程式時,需要複製一大堆 dll,如果自己去複製dll,很可能丟三落四,導致exe在別的電腦裡無法正常執行。因此 qt 官方開發環境裡自帶了乙個工具 windeployqt.exe。以官方 qt 5.8.0 mingw 開發環境為例,從開始選單...

Qt發布應用程式

1.首先找到你的qt的安裝位置 例如我的位置 d qt58 找到d qt58 5.8 msvc2015 64 bin windeployqt.exe 2.找到你想要發布的應用程式的資料夾 例如我的位置 d xx qtdoc build release release xtest.exe 3.管理員方...

Qt應用程式的發布

windeployqt.exe是qt自帶的windows平台發布工具。windeployqt.exe檔案在qt的bin目錄下,qt的每乙個編譯器版本均有獨立的目錄,在我的計算機上安裝了mingw32,mingw64,msvc2017 32bit,msvc2017 64bit這四個編譯器版本。如下圖為...