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() << "完成切换布局";
相关推荐
Felix_One15 小时前
Qt 串口通信避坑指南:QSerialPort 的 5 个常见问题
qt
blasit4 天前
笔记:Qt C++建立子线程做一个socket TCP常连接通信
c++·qt·tcp/ip
范特西.i9 天前
QT聊天项目(8)
开发语言·qt
枫叶丹49 天前
【Qt开发】Qt界面优化(七)-> Qt样式表(QSS) 样式属性
c语言·开发语言·c++·qt
十五年专注C++开发9 天前
Qt deleteLater作用及源码分析
开发语言·c++·qt·qobject
kangzerun9 天前
SQLiteManager:一个优雅的Qt SQLite数据库操作类
数据库·qt·sqlite
金刚狼889 天前
qt和qt creator的下载安装
开发语言·qt
追烽少年x9 天前
Qt中使用Zint库显示二维码
qt
谁刺我心9 天前
qt源码、qt在线安装器镜像下载
开发语言·qt
金刚狼889 天前
在qt creator中创建helloworld程序并构建
开发语言·qt