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

Qt - QSplitter组件功能及用法

QSplitter 是 Qt 中的一个布局管理组件,主要用于创建可拖动的分隔条,让用户能够动态调整子控件的大小。

 在 Qt Designer(UI 设计界面)中,QSplitter 确实不会像按钮、标签那样直接出现在左侧的组件列表中。这是因为 QSplitter 的使用方式比较特殊。

 

在 Qt Designer 中创建 QSplitter 的 3 种方法

方法 1:使用布局菜单(最常用)

步骤:
1. 在界面上放置两个或多个想要分隔的控件(如 QTextEdit、QListWidget 等)
2. 按住 Ctrl 键,同时选中这些控件
3. 右键点击选中的控件
4. 选择布局菜单中的:- "使用分裂器水平布局" (Lay Out Horizontally in Splitter)- 或 "使用分裂器垂直布局" (Lay Out Vertically in Splitter)

图示:

text
[QTextEdit]  [QListWidget]    // 选中这两个控件↓
右键 → 布局 → 使用分裂器水平布局↓
[QTextEdit | 分隔条 | QListWidget]  // 现在可以拖动分隔条了

方法 2:使用工具栏按钮

text
1. 选中多个控件
2. 在工具栏中找到布局按钮:- "水平分裂器布局" 图标:通常显示为两个矩形中间有分隔条- "垂直分裂器布局" 图标
3. 点击相应按钮即可

方法 3:在对象查看器中提升为 QSplitter

步骤:
1. 放置一个 QFrame 或 QWidget 作为容器
2. 右键点击该容器 → "提升为..."
3. 在对话框中:- "提升的类名称": 输入 "QSplitter"- "头文件": 输入 "QSplitter"
4. 点击 "添加" 然后 "提升"

 

1. 核心功能

  • 可调整区域:通过拖动分隔条来调整相邻控件的大小比例

  • 灵活布局:支持水平和垂直方向的分隔

  • 嵌套使用:可以嵌套多个 QSplitter 实现复杂布局

2. 基本用法示例

cpp
// 创建水平分隔器
QSplitter *splitter = new QSplitter(Qt::Horizontal);// 添加子控件
QTextEdit *leftWidget = new QTextEdit;
QTextEdit *rightWidget = new QTextEdit;splitter->addWidget(leftWidget);
splitter->addWidget(rightWidget);// 设置初始比例
splitter->setSizes(QList<int>() << 200 << 400);

3. 常用设置

cpp
// 设置方向(水平或垂直)
splitter->setOrientation(Qt::Vertical);// 设置子控件的最小大小
splitter->setMinimumSize(100, 100);// 设置是否可以折叠(双击分隔条)
splitter->setCollapsible(0, true);  // 第一个控件可折叠// 设置拖动手柄样式
splitter->setHandleWidth(10);
splitter->setOpaqueResize(true);  // 实时预览调整效果

4. 嵌套使用示例

cpp
// 创建主水平分隔器
QSplitter *mainSplitter = new QSplitter(Qt::Horizontal);// 左侧垂直分隔器
QSplitter *leftSplitter = new QSplitter(Qt::Vertical);
leftSplitter->addWidget(new QTextEdit);
leftSplitter->addWidget(new QTextEdit);// 右侧区域
QTextEdit *rightWidget = new QTextEdit;mainSplitter->addWidget(leftSplitter);
mainSplitter->addWidget(rightWidget);

5. 信号和槽

cpp
// 当分隔条位置改变时发出的信号
connect(splitter, &QSplitter::splitterMoved, [](int pos, int index){qDebug() << "分隔条位置改变:" << pos;});

6. 与布局管理器的比较

 
 
特性 QSplitter 布局管理器(QVBoxLayout等)
动态调整 ✅ 用户可拖动调整 ❌ 固定比例
布局方向 水平/垂直 多种布局方式
嵌套支持
代码复杂度 简单 相对复杂

 

7. 样式定制

// 自定义分隔条样式
splitter->setStyleSheet("QSplitter::handle {""    background-color: gray;""    border: 1px solid darkgray;""}"
);

 

 

 

http://www.jsqmd.com/news/205487/

相关文章:

  • YuukiPS启动器:原神玩家的智能管家
  • 如何快速掌握MCEdit 2.0:新手玩家的终极地图编辑指南
  • API网关设计模式:AI列举限流与鉴权实施方案
  • Steam创意工坊模组下载难题的终极解决方案
  • 缓存穿透怎么办?AI提供Redis布隆过滤器解决方案
  • 7.在程序中链接静态库
  • Server-Sent Events实现:VibeThinker构建实时通知系统
  • Mapshaper:地理数据处理的神器,零基础也能轻松上手
  • Z-Image真实感生成实测:人像、产品图细节还原度惊人
  • WorkshopDL使用全攻略:轻松下载Steam创意工坊模组
  • 打造个人游戏串流中心:Sunshine服务器全方位配置指南
  • 3步精通YuukiPS启动器:原神多账号管理与网络优化终极方案
  • 8.在程序中链接动态库
  • Sunshine云游戏服务器终极搭建指南:免费开启跨平台游戏新纪元
  • 9.在cmake中打印日志信息
  • Sunshine游戏串流:打造专属云游戏平台的完整指南
  • 如何快速上手MOOTDX:Python量化投资的终极入门指南
  • Apollo Client缓存策略:AI调整Normalized存储结构
  • 2026马年丽江旅拍TOP5权威榜:雪山古城见证甜蜜,真实口碑+服务实力双测评 - charlieruizvin
  • LitElement自定义元素:AI创建高性能Web Component
  • 2026年知名的户外墙体广告,墙体广告公司,全国墙体广告公司用户口碑推荐清单 - 品牌鉴赏师
  • 2026深圳办公选址指南:创业办公楼、企业孵化园区与联合办公室租赁推荐 - 品牌2026
  • WeMod终极解锁指南:免费获取专业版完整功能
  • 刷题日记 2026.1.6 最大子序和
  • 思源黑体TTF:构建专业级多语言字体解决方案的完整指南
  • 如何快速掌握Vectorizer:图像矢量化完整指南
  • VSCode终端聊天功能全解析:3步实现团队协作效率翻倍
  • c++ qt开发第一天 hello world
  • 智能高效!一键完成Chrome浏览器完整网页长截图终极指南
  • YuukiPS启动器完全指南:5步搞定原神多账号管理难题