场景1:layout下的控件删除
背景:工作需要,动态的增加一组组件和删除一组组件。
如下示意,点击delete,将QVBoxLayout下的四个button进行删除。
布局代码如下:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QPushButton* btn = new QPushButton("Delete",this);
connect(btn,&QPushButton::clicked,this,&MainWindow::traverseDelete);
//产生窗口
initWindow();
//遍历删除
//traverseDelete();
QVBoxLayout* mainLayout = new QVBoxLayout;
mainLayout->addLayout(vLayout);
mainLayout->addSpacing(50);
mainLayout->addWidget(btn);
QWidget* widget = new QWidget(this);
widget->setLayout(mainLayout);
setCentralWidget(widget);
setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
resize(sizeHint());
setWindowTitle("layout");
}
void MainWindow::initWindow()
{
QPushButton* btn1 = new QPushButton("Button1");
QPushButton* btn2 = new QPushButton("Button2");
QPushButton* btn3 = new QPushButton("Button3");
QPushButton* btn4 = new QPushButton("Button4");
vLayout = new QVBo

本文介绍了如何在Qt中动态删除QVBoxLayout及其子布局下的按钮控件。通过示例代码展示了如何遍历删除QVBoxLayout中的所有按钮,以及处理嵌套布局如QHBoxLayout下的QVBoxLayout的情况,提供了traverseDelete和traverseDelete1两个函数来实现不同层次布局的删除操作。

最低0.47元/天 解锁文章
505

被折叠的 条评论
为什么被折叠?



