当前位置: 首页 > 网络知识

Qt QSplitter拆分器

时间:2026-01-26 14:20:10

1.简介

QSplitter拆分器允许用户通过拖动子部件之间的边界来控制它们的大小。

单个拆分器可以控制任意数量的小部件。QSplitter的典型用法是创建几个小部件,并使用insertWidget()或addWidget()添加它们。

2.常用方法

默认情况下,QSplitter会动态调整其子元素的大小。如果您希望QSplitter仅在调整大小操作结束时调整子元素的大小, 那么调用setOpaqueResize(false)。

void setOpaqueResize(bool opaque = true)

将子部件的各自大小设置为列表中给定的值。

如果splitter是水平的,则这些值将以像素为单位设置每个小部件的宽度,从左到右。

如果splitter是垂直的,则从上到下设置每个小部件的高度

void setSizes(const QList<int> &list)

3.示例

3.1伸缩系数

添加3个QPlainTextEdit,默认水平方式添加的,并且设置了伸缩系数,我个人理解,伸缩系数,好比,比例系数。上图比例为 2:1:1。

源码:

1 QSplitter *s1 = new QSplitter(this); 2 ui>verticalLayout>addWidget(s1); 3 4 //添加3个widget 5 QPlainTextEdit *t1 = new QPlainTextEdit(s1); 6 t1>setPlaceholderText("t1"); 7 8 QPlainTextEdit *t2 = new QPlainTextEdit(s1); 9 t2>setPlaceholderText("t2"); 10 11 QPlainTextEdit *t3 = new QPlainTextEdit(s1); 12 t3>setPlaceholderText("t3"); 13 14 s1>addWidget(t1); 15 s1>addWidget(t2); 16 s1>addWidget(t3); 17 18 s1>setStretchFactor(0,2); 19 s1>setStretchFactor(1,1); 20 s1>setStretchFactor(2,1);

3.2 setOpaqueResize(false)效果

默认为true,效果如下

3.3QSplitter相互嵌套

源码:

1 QSplitter *mainSplitter = new QSplitter(this); 2 ui>verticalLayout>addWidget(mainSplitter); 3 4 QSplitter *rightSplitter = new QSplitter(mainSplitter); 5 rightSplitter>setOrientation(Qt::Vertical); //设置垂直方向 6 7 //添加3个widget 8 QPlainTextEdit *t1 = new QPlainTextEdit(mainSplitter); 9 t1>setPlaceholderText("t1"); 10 11 QPlainTextEdit *t2 = new QPlainTextEdit(rightSplitter); 12 t2>setPlaceholderText("t2"); 13 14 QPlainTextEdit *t3 = new QPlainTextEdit(rightSplitter); 15 t3>setPlaceholderText("t3"); 16 17 rightSplitter>addWidget(t2); 18 rightSplitter>addWidget(t3); 19 20 mainSplitter>addWidget(t1); 21 mainSplitter>addWidget(rightSplitter);



上一篇:设计模式之类之间的关系和六大原则
下一篇:flash损坏了怎么修复?flash存储器的数据恢复极其困难
Qt
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素