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() << "完成切换布局";
相关推荐
chao1898445 小时前
Qt Modbus TCP 通讯源码
qt·tcp/ip·命令模式
Hua-Jay5 小时前
OpenCV联合C++/Qt 学习笔记(十六)----图像细化、轮廓检测、轮廓信息统计及轮廓外接多边形
c++·笔记·qt·opencv·学习·计算机视觉
lilong(DLC)6 小时前
Qt信号槽在异步连接时需要将参数进行复制吗?
开发语言·qt
渣渣灰95876 小时前
VSCode开发环境开发Qt程序
ide·vscode·qt
读书札记20226 小时前
Qt Creator 调试报错:Unable to create a debugging engine.
开发语言·qt
透明的玻璃杯6 小时前
Qt Creator + Windows + Protobuf 最优方案(Mqqt通讯采用的方式)
开发语言·windows·qt
cpp_learners6 小时前
QT 使用 QXlsx 时遇到包含 <private/qzipreader_p.h> 和 <private/qzipreader_p.h> 错误的解决方案
qt·qxlsx·quazip
hellokandy16 小时前
Qt QCache 使用指南
qt·lru·qpair·qcache
小许同学记录成长16 小时前
全景扫描瀑布图实现
qt
加号318 小时前
【Qt】 应用程序发布:依赖库拷贝与部署指南
开发语言·qt