从布局 QT 中删除 qwidget

Posted

技术标签:

【中文标题】从布局 QT 中删除 qwidget【英文标题】:delete qwidget from layout QT 【发布时间】:2013-01-29 14:18:03 【问题描述】:

我在另一个 qwidget(我们称之为 qwidget2)的布局内有一个 qwidget(我们称之为 qwidget1),我想删除 qwidget2 布局中的所有内容:我想清除布局,所以里面什么都没有了.. 到目前为止,我能做的是完全删除 qwidget2:

void QCell::deleteMyChildren()
   delete this;

但它会删除 qwidget2 本身。这不是我想要的。 请帮我删除布局内的项目。

【问题讨论】:

澄清一下,因为我也有类似的问题,qwidget2是用QCell表示的吗? 【参考方案1】:

只需在布局中的项目内循环并从布局中删除项目,然后删除项目:

void QCell::deleteMyChildren() 
    while (count() > 0) 
        QLayoutItem * item = takeAt(0);
        delete item;
    

【讨论】:

以上是关于从布局 QT 中删除 qwidget的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Qt Creator 的 UI 设计器中的其他两个布局之间删除 Qt 布局?

从布局中删除所有项目

QT5.4 删除和删除布局中的小部件

Qt : 主窗口中添加布局和删除布局的问题.

QT:如何在布局中动态添加和删除小部件?

强制删除 Qt 中的所有水平间距