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() << "完成切换布局";
相关推荐
SummerGao.26 分钟前
Windows 快速搭建C++开发环境,安装C++、CMake、QT、Visual Studio、Setup Factory
c++·windows·qt·cmake·visual studio·setup factory
天线枫枫4 小时前
QT- HTTP + JSON(还需完善)
c++·qt·http
fyzy6 小时前
QPainter绘制3D 饼状图
qt·3d
我真不会起名字啊19 小时前
“深入浅出”系列之杂谈篇:(3)Qt5和Qt6该学哪个?
开发语言·qt
laimaxgg19 小时前
Qt常用控件之单选按钮QRadioButton
开发语言·c++·qt·ui·qt5
牵牛老人19 小时前
Qt中使用QPdfWriter类结合QPainter类绘制并输出PDF文件
数据库·qt·pdf
水瓶丫头站住19 小时前
Qt的QStackedWidget样式设置
开发语言·qt
慕诗客21 小时前
QT基于Gstreamer采集的简单示例
开发语言·qt
Blasit1 天前
C++ Qt建立一个HTTP服务器
服务器·开发语言·c++·qt·http
@hdd1 天前
深入解析Qt事件循环
qt