首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QT5.4在布局中删除和删除小部件

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

Stack Overflow用户
提问于 2015-04-27 23:24:24
回答 1查看 3.4K关注 0票数 0

我有一个QStackedLayout,上面没有几个QWidget。小部件布局是QVBoxLayout,它也有很少的QPushButton。我想要做的是删除QStackedLayout中的所有小部件,然后删除小部件和布局,但是,我不想删除所有的按钮,因为稍后我会将它们放到另一个小部件中。

这是我的密码:

代码语言:javascript
复制
while (QLayoutItem *item = m_stacked_layout->takeAt(0)) {
    QWidget *w = item->widget();

    for (int i = 0; i < w->layout()->count(); i++) {
        QPushButton *button = qobject_cast<QPushButton *>(w->layout()->itemAt(i)->widget());
        if (button) {
            w->layout()->removeWidget(button);
        }
    }

    delete w;
    delete item;
}

应用程序在行delete w;处崩溃。而且,如果删除delete行,应用程序就可以正常工作。

EN

回答 1

Stack Overflow用户

发布于 2015-04-28 09:11:48

但是我不希望所有的按钮都被删除,因为稍后我会把它们放到另一个小部件上。

  1. 隐藏所有要传输的小部件
  2. 将所有这些小部件的父部件设置为nullptr
  3. 以后..。设置必要的父级并显示小部件

注意:如果要删除某些插槽中的小部件,则应该使用deleteLater方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29907695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档