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() << "完成切换布局";
相关推荐
lhbweilai3 小时前
QT(了解各个控件和布局)上
数据库·qt
ShineWinsu8 小时前
对于Qt:QLabel常见属性的解析
c++·qt·面试·笔试·gui·标签·qlabel
小徐不徐说9 小时前
数据库存储基础:理解表结构、主键、事务与 BLOB
开发语言·数据库·c++·qt·程序设计
蓝祁子yoky1 天前
Qt学习日记 Day13:网络编程(一)-TCP基础与Socket实战
网络·qt·学习
飞浪纪元[FWC–FE]1 天前
从零到一键绿:Qt 5.14.2 + VS2019 开发环境搭建、Kit 套件配置与构建错误修复完全手册
开发语言·qt
ShineWinsu1 天前
对于Qt:QCheckBox常见属性的详细解析
c++·qt·面试·笔试·gui·qcheckbox·多选框
ShineWinsu1 天前
对于Qt:QPushButton常见属性的解析
开发语言·c++·qt·api·gui·按钮·qpushbutton
飞浪纪元[FWC–FE]1 天前
Qt 工程创建与 CMake / qmake 构建规范
开发语言·数据库·qt
Lhan.zzZ1 天前
用 Qt 构建线程安全的通讯静态库:从线程亲和性到完整工程
c++·vscode·qt·tcp/ip·udp
飞浪纪元[FWC–FE]1 天前
Qt 构建排错实录:从 MSB 1009 到生成器选型
开发语言·数据库·qt