QT切换控件布局

1、切换前垂直布局

2、切换后水平布局

3、关键代码

复制代码
    qDebug() << "开始切换布局";
    QWidget *widget = centralWidget();
    QLayout *layout = widget->layout();
    if(layout)
    {
        while(layout->count())
        {
            QLayoutItem *item = layout->takeAt(0);
            if(item->layout())
            {
                delete item->layout();
            }
            else
            {
                if(item->widget())
                {
                    delete item->widget();
                }
            }
            delete item;
        }
        delete layout;
    }

    layout = new MyHBoxLayout;

    QLabel *label1 = new MyLabel("Label 1");
    QLabel *label2 = new MyLabel("Label 2");
    QLabel *label3 = new MyLabel("Label 3");

    label1->setStyleSheet("QLabel {background : red}");
    label2->setStyleSheet("QLabel {background : green}");
    label3->setStyleSheet("QLabel {background : blue}");

    layout->addWidget(label1);
    layout->addWidget(label2);
    layout->addWidget(label3);
    widget->setLayout(layout);

    qDebug() << "完成切换布局";
相关推荐
油炸自行车5 小时前
【Qt】Qt设计师控件名缩写、命名规则
qt·qt designer·qt设计师控件命名规则·qt设计师控件命名简写·qt控件名缩写
CC.GG7 小时前
【Qt】Qt背景与环境搭建
开发语言·qt
小尧嵌入式8 小时前
QT软件开发知识流程及秒表计时器开发
开发语言·c++·qt·算法
cwxblog8 小时前
Qt + Visual Studio 开发环境搭建
windows·qt·开发工具·visual studio
NiNi_suanfa17 小时前
【Qt】Qt 批量修改同类对象
开发语言·c++·qt
mengzhi啊18 小时前
c++11的变参模板和c++17的左折叠
qt
路痴楷20 小时前
无法定位程序输入点问题
c++·qt·visual studio
Source.Liu20 小时前
【LibreCAD】 RS_Units 类完整解析
c++·qt·rust
偶像你挑的噻21 小时前
2.Qt-基础核心以及信号与槽
开发语言·qt
爱吃巧克力的程序媛1 天前
Qt 异步编程---概述
开发语言·qt