QT刪除QWidget或QLayout下的控件


最近做了一個功能,點擊按鈕新建控件,再次點擊需要刪除上一次的結果,重新新建控件,如圖:

設置參數,第一次點擊分類按鈕:

更改參數,第二次點擊分類按鈕:

試了很多方法都不行,update(),repaint()均沒有效果,簡單的移除layout也不管用,后來發現問題在於前一次創建的控件沒有delete,方法很簡單,看代碼:

QList<QPushButton*> btns = ui->scrollAreaWidgetContents->findChildren<QPushButton*>();
foreach (QPushButton* btn, btns) { delete btn; }

取widget / layout 下所有的QPushButton類型(或其他)的子控件,遍歷控件,刪除,再重新執行創建操作即可。

 

參考:如何動態刪除QGridLayout里的控件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM