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() << "完成切换布局";
相关推荐
菜鸟看点11 分钟前
QT中子线程触发主线程弹窗并阻塞等待用户响应
qt
byxdaz29 分钟前
Qt OpenGL 3D 编程入门
qt·opengl
誰能久伴不乏3 小时前
深度解析 Qt 最顶层类 QObject:继承关系与内存生命周期管理
开发语言·qt
菜鸟看点5 小时前
QT中子线程触发主线程弹窗并阻塞等待用户响应-传统信号槽实现
qt
朱小勇本勇6 小时前
Qt自带示例及官方文档学习
开发语言·qt·学习
Wyn_7 小时前
【QT】自定义QWidget标题栏,可拖拽(拖拽时窗体变为normal大小),可最小/大化、关闭(图文详情)
开发语言·qt
@Turbo@8 小时前
【QT】在Qt6的`QTextEdit`中,同一行更新内容
开发语言·qt
showmeyourcode0.o8 小时前
QT常用控件(1)
开发语言·c++·qt
hvinsion11 小时前
【开源工具】Python+PyQt5打造智能桌面单词记忆工具:悬浮窗+热键切换+自定义词库
python·qt·考研·开源·英语·翻译·英语单词
hvinsion14 小时前
【开源工具】超全Emoji工具箱开发实战:Python+PyQt5打造跨平台表情管理神器
python·qt·开源·emoji·表情包