QT子窗體占用系統資源的釋放問題

2021-05-23 09:05:44 字數 706 閱讀 6337

qt

中當主窗體退出時,子窗體占用的系統資源將自動釋放。但是,如果主窗體退出前,連續開啟關閉子窗體,那麼子窗體占用的系統資源將越來越多,並不進行釋放。(這點可以通過任務管理器對程式使用的記憶體大小變化進行觀察得到。)

為了能夠使子窗體自動釋放系統資源,需要在子窗體類中新增這樣一句:

this->setattribute(qt::wa_deleteonclose,true);

來使子窗體退出時自動釋放系統資源。它其實是在子窗體的closeevent()函式中對窗體資源進行了刪除,可以理解為進行了delete this;操作。但是我在過載了closeevent()函式的窗體類的建構函式中新增了this->setattribute(qt::wa_deleteonclose,true);這樣的語句並沒有實現窗體占用的資源釋放。後來我在窗體的closeevent()函式的最後新增了一句:delete this;就可以實現窗體資源的自動釋放了。當子窗體釋放資源的時候,由於子窗體和其上的元件是父子關係,從而窗體上的元件占用的資源不需要我們手動釋放,由子窗體自動釋放。

總結: 1)

若要實現子窗體占用系統資源的釋放,要在建構函式中新增this->setattribute(qt::wa_deleteonclose,true);

2)若過載了closeevent()函式,則需要在此函式的最後新增delete this;進行資源的釋放。

ps:以上是我的個人理解,如有不妥的地方,歡迎指正。

QT子窗體占用系統資源的釋放問題

qt中當主窗體退出時,子窗體占用的系統資源將自動釋放。但是,如果主窗體退出前,連續開啟關閉子窗體,那麼子窗體占用的系統資源將越來越多,並不進行釋放。這點可以通過任務管理器對程式使用的記憶體大小變化進行觀察得到。為了能夠使子窗體自動釋放系統資源,需要在子窗體類中新增這樣一句 this setattri...

Linux檢視系統資源占用

在系統維護的過程中,隨時可能有需要檢視 cpu和記憶體的使用率,並根據相應資訊分析系統狀況的需求。本文介紹一下幾種常見的linux系統資源檢視命令。1 總體記憶體占用的檢視 命令 free 圖1 free命令檢視記憶體占用 1 free命令預設是以kb為單位顯示的,可以用free m 用mb單位來顯...

檢視程序占用系統資源的方法

用ps命令檢視程序的記憶體 ps命令是linux下常見的檢視程序狀況的程式,它有幾個字段可以用來檢視 程序記憶體使用情況 sz,rss,vsz。分別說明如下 sz 程序映像所占用的物理頁面數量,也就是以物理頁面為單位表示的虛擬記憶體大小 rss 程序當前所占用的物理記憶體大小,單位為kb vsz 程...