QT删除QWidget或QLayout下的控件
生活随笔
收集整理的這篇文章主要介紹了
QT删除QWidget或QLayout下的控件
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
最近做了一個(gè)功能,點(diǎn)擊按鈕新建控件,再次點(diǎn)擊需要?jiǎng)h除上一次的結(jié)果,重新新建控件,如圖:
設(shè)置參數(shù),第一次點(diǎn)擊分類按鈕:
更改參數(shù),第二次點(diǎn)擊分類按鈕:
試了很多方法都不行,update(),repaint()均沒有效果,簡(jiǎn)單的移除layout也不管用,后來發(fā)現(xiàn)問題在于前一次創(chuàng)建的控件沒有delete,方法很簡(jiǎn)單,看代碼:
QList<QPushButton*> btns = ui->scrollAreaWidgetContents->findChildren<QPushButton*>();foreach (QPushButton* btn, btns) { delete btn; }
取widget / layout 下所有的QPushButton類型(或其他)的子控件,遍歷控件,刪除,再重新執(zhí)行創(chuàng)建操作即可。
?
參考:如何動(dòng)態(tài)刪除QGridLayout里的控件
?
轉(zhuǎn)載于:https://www.cnblogs.com/jiangwork/p/7126286.html
總結(jié)
以上是生活随笔為你收集整理的QT删除QWidget或QLayout下的控件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Collection集合的三种初始化方法
- 下一篇: ef6+mysql的bug