当前位置: 首页 > news >正文

QT_QT布局常用类QStackedWidget与QLayout类

文章目录

  • QT_QT布局常用类QStackedWidget与QLayout类
    • QLayout类(基本布局)
      • 继承体系
      • 布局案例
    • QStackenWidget类(堆栈窗体)
      • 继承体系
      • 示例

QT_QT布局常用类QStackedWidget与QLayout类

QLayout类(基本布局)

继承体系

QLayout 是所有布局管理器的基类,它继承自 QObject(而非 QWidget)。整体继承关系如下:

QObject └── QLayout// 所有布局管理器的基类├── QBoxLayout// 线性布局(抽象基类)│ ├── QHBoxLayout// 水平排列│ └── QVBoxLayout// 垂直排列├── QGridLayout// 网格布局(二维)├── QFormLayout// 表单布局(标签 + 输入框)└── QStackedLayout// 堆叠布局(同一区域切换控件)

布局案例

#include"dialog.h"Dialog::Dialog(QWidget*parent):QDialog(parent){setWindowTitle("员工信息");// 左边控件UserNumber=newQLabel("员工编号:");UserNumberEdit=newQLineEdit;UserName=newQLabel("员工姓名:");UserNameEdit=newQLineEdit;//(this)UserSex=newQLabel("员工性别");UserSexCombox=newQComboBox;UserSexCombox->addItem("男");UserSexCombox->addItem("女");UserDepart=newQLabel("所在部门:");UserDepartEdit=newQTextEdit;UserAge=newQLabel("员工年龄");UserAgeEdit=newQLineEdit;// 右边控件topRightLayout=newQHBoxLayout();topRightLayout->setSpacing(25);MySelfInfo=newQLabel("个人简历");MyselfInfoTextEdit=newQTextEdit;rightlayout=newQVBoxLayout();rightlayout->addLayout(topRightLayout);rightlayout->addWidget(MySelfInfo);rightlayout->addWidget(MyselfInfoTextEdit);// 右边下部分// QPushButton *okBtn,*cancelBtn;// QHBoxLayout *buttomLayout;okBtn=newQPushButton("保存");cancelBtn=newQPushButton("退出");buttomLayout=newQHBoxLayout();buttomLayout->addStretch();buttomLayout->addWidget(okBtn);buttomLayout->addWidget(cancelBtn);//网格布局lLayout=newQGridLayout();lLayout->addWidget(UserNumber,0,0);lLayout->addWidget(UserNumberEdit,0,1);lLayout->addWidget(UserName,1,0);lLayout->addWidget(UserNameEdit,1,1);lLayout->addWidget(UserSex,2,0);lLayout->addWidget(UserSexCombox,2,1);lLayout->addWidget(UserDepart,3,0);lLayout->addWidget(UserDepartEdit,3,1);lLayout->addWidget(UserAge,4,0);lLayout->addWidget(UserAgeEdit,4,1);lLayout->setColumnStretch(0,1);lLayout->setColumnStretch(1,3);QGridLayout*mlayout=newQGridLayout(this);mlayout->setMargin(20);mlayout->setSpacing(10);mlayout->addLayout(lLayout,0,0);mlayout->addLayout(rightlayout,0,1);mlayout->addLayout(buttomLayout,1,0,1,2);mlayout->setSizeConstraint(QLayout::SetFixedSize);}Dialog::~Dialog(){}

QStackenWidget类(堆栈窗体)

QStackedWidget 是 Qt 中用于实现多页面切换的容器控件。它在同一区域放置多个子控件(页面),但同一时刻只显示其中一个,常用于实现选项卡、向导、设置页面等场景。

继承体系

QObject+QWidget └── QFrame └── QStackedWidget └── 内部使用 QStackedLayout 实现

QStackedWidget 本质上是对 QStackedLayout 的封装,提供了更便捷的 Widget 级操作接口。

示例

#include"stackeddlg.h"#include<QHBoxLayout>stackedDlg::stackedDlg(QWidget*parent):QDialog(parent){setWindowTitle("堆栈窗体测试");qlist=newQListWidget(this);qlist->insertItem(0,"Linux1");qlist->insertItem(1,"Linux2");qlist->insertItem(2,"Linux3");qlist->insertItem(3,"Linux4");qlist->insertItem(4,"Linux5");lab1=newQLabel("linux1 QT");lab2=newQLabel("linux2 QT");lab3=newQLabel("linux3 QT");lab4=newQLabel("linux4 QT");lab5=newQLabel("linux5 QT");statcks=newQStackedWidget(this);statcks->addWidget(lab1);statcks->addWidget(lab2);statcks->addWidget(lab3);statcks->addWidget(lab4);statcks->addWidget(lab5);QHBoxLayout*mlayout=newQHBoxLayout(this);mlayout->setMargin(10);mlayout->setSpacing(20);mlayout->addWidget(qlist);mlayout->addWidget(statcks,0,Qt::AlignCenter);mlayout->setStretchFactor(qlist,1);mlayout->setStretchFactor(statcks,2);// 连接信号与槽connect(qlist,&QListWidget::currentRowChanged,statcks,&QStackedWidget::setCurrentIndex);}stackedDlg::~stackedDlg(){}

http://www.cnnetsun.cn/news/4100919.html

相关文章:

  • 095、BLC黑电平校正的实时标定与温度补偿——基于高通Spectra的产线标定流程与算法实现
  • 免费离线OCR表格识别工具部署与实战指南
  • 半小时用AI+VBA打造Excel一键查询系统,告别繁琐查找
  • 从深夜救火到日常巡检:RedisDesktopManager Windows版图形化使用全记录
  • Copilot autorun=1参数窃密漏洞实战分析:检测、复现与防御手册
  • 【知律|15】HarmonyOS ArkTS 本地状态持久化实战:让保存、删除和页面返回后的数据即时一致
  • 如何破解百度网盘Mac版下载限速?3分钟用BaiduNetdiskPlugin-macOS免费解锁SVIP高速下载
  • 3分钟测出手柄真实延迟与轮询率:XInputTest 免费实测指南
  • 树莓派安全镜像构建指南:从系统加固到自动化部署
  • SQLiteCpp 快速上手:5 分钟用现代 C++ 优雅操作 SQLite3 数据库
  • 还在被魔兽争霸3的老毛病折磨?WarcraftHelper优化工具保姆级上手指南
  • Whisky 使用完整指南:不装虚拟机、不花一分钱,在 Apple Silicon Mac 上畅跑 Windows 软件的终极方案
  • Boss-Key 老板键使用指南:一张能力清单,讲透窗口隐藏、静音与进程冻结
  • 5分钟上手Whisky:让macOS轻松运行Windows软件的完整指南
  • 久别重逢,一份信物寄托岁岁期许
  • 从Codex配置陷阱到长上下文本质:如何系统评估与落地大模型工程方案
  • STL在CAD里改不动?stltostp让STL转STEP只用一条命令
  • AMD Ryzen调试工具实战:5个技巧解锁SMU寄存器与曲线优化潜能
  • QSFP/QSFP-DD/OSFP 通用管理接口规范(CMIS)解读:09 Page 11h
  • 用眼休息提醒软件Project Eye实测:每天20秒,真的能告别眼干眼涩吗
  • Midscene.js实战指南:如何用视觉AI替代脆弱选择器,一套自然语言搞定Web到手机的UI自动化测试
  • Elmer FEM实战:如何用免费开源工具完成一次真实的多物理场仿真
  • 锤子助手第112个开关:启用笔记复读的位置、验证方法与混合内容隐私边界
  • 键盘连击修正终极指南:Keyboard Chatter Blocker 逐键防抖完全上手
  • UE4SS DLL加载失败终极排查手册:5站走通Lua注入报错与系统级劫持的完整修复路线
  • WVP-PRO国标GB28181视频平台完整上手指南:一条命令启动,5分钟接入第一批摄像头
  • BiliBili-UWP 完整上手指南:免费开源的 B 站第三方客户端,Windows 桌面观影更顺滑
  • SAGE社交感知生成引擎:异构多智能体导航的生成式路径规划实践
  • 告别付费墙:Wand-Enhancer 本地解锁 WeMod Pro 的完整实操指南(附手机远程控制玩法)
  • WindowResizer窗口大小调整快速上手指南:4步强制改掉任意顽固窗口