gpt4 book ai didi

c++ - 如何从其他 QLayout 中删除 QLayout?

转载 作者:行者123 更新时间:2023-11-28 02:09:31 24 4
gpt4 key购买 nike

我有一个包含其他布局(子布局)的布局。我需要从布局中删除包含内容的子布局。我该怎么做?

QVBoxLayout* mainLayout = new QVBoxLayout; 
QHBoxLayout* subLayout = new QHBoxLayout;
for(int i = 0; i < 3; i++)
subLayout->addWidget(new QPushButton(this)); //some content of sublayout
mainLayout->addLayout(subLayout);
setLayout(mainLayout);

这个类只有QLayout::removeWidget(),没有QLayout::removeLayout()。只是删除子布局

QLayoutItem *item;
while ((item = subLayout->takeAt(0)))
delete item;
delete subLayout;

也没有正确的效果(内容仍然保留在屏幕上)。

那怎么办?

最佳答案

void QLayout::removeItem(QLayoutItem *item)

Removes the layout item item from the layout. It is the caller's responsibility to delete the item.

Notice that item can be a layout (since QLayout inherits QLayoutItem).

关于c++ - 如何从其他 QLayout 中删除 QLayout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36250320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com