1.简介

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

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

2.常用方法

void addWidget(QWidget *widget) 添加widget
int count() const 返回拆分器布局中包含的小部件数量。
void setOrientation(Qt::Orientation) 设置方向,水平,垂直,默认水平的
void setStretchFactor(int index, int stretch) 设置伸缩系数
void insertWidget(int index, QWidget *widget) 插入widget

默认情况下,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。

源码:

    QSplitter *s1 = new QSplitter(this);ui->verticalLayout->addWidget(s1);//添加3个widgetQPlainTextEdit *t1 = new QPlainTextEdit(s1);t1->setPlaceholderText("t1");QPlainTextEdit *t2 = new QPlainTextEdit(s1);t2->setPlaceholderText("t2");QPlainTextEdit *t3 = new QPlainTextEdit(s1);t3->setPlaceholderText("t3");s1->addWidget(t1);s1->addWidget(t2);s1->addWidget(t3);s1->setStretchFactor(0,2);s1->setStretchFactor(1,1);s1->setStretchFactor(2,1);

3.2 setOpaqueResize(false)效果

默认为true,效果如下

3.3QSplitter相互嵌套

源码:

    QSplitter *mainSplitter = new QSplitter(this);ui->verticalLayout->addWidget(mainSplitter);QSplitter *rightSplitter = new QSplitter(mainSplitter);rightSplitter->setOrientation(Qt::Vertical);    //设置垂直方向//添加3个widgetQPlainTextEdit *t1 = new QPlainTextEdit(mainSplitter);t1->setPlaceholderText("t1");QPlainTextEdit *t2 = new QPlainTextEdit(rightSplitter);t2->setPlaceholderText("t2");QPlainTextEdit *t3 = new QPlainTextEdit(rightSplitter);t3->setPlaceholderText("t3");rightSplitter->addWidget(t2);rightSplitter->addWidget(t3);mainSplitter->addWidget(t1);mainSplitter->addWidget(rightSplitter);

Qt QSplitter拆分器相关推荐

  1. 第六章 Qt布局管理器Layout

    第六章 Qt布局管理器Layout 大家有没有发现一个现象,我们放置一个组件,给组件最原始的定位是给出这个控件的坐标和宽高值,这样Qt就知道这个组件的位置.当用户改变窗口的大小,组件还静静地呆在原来的 ...

  2. Qt Creator调试器故障排除

    Qt Creator调试器故障排除 调试器故障排除 无法启动调试器 调试器不会达到断点 调试器不起作用 指针变量成员不直接显示 结构成员未按结构布局排序 内置调试器在启动和运行期间速度很慢 调试器无法 ...

  3. spring mvc拆分_Spring集成–强大的拆分器聚合器

    spring mvc拆分 健壮是什么意思? 在本文的上下文中,健壮性是指在不立即返回给调用者的情况下管理流中的异常条件的能力. 在某些处理方案中, n个 m个回答足以做出结论. 通常具有这些趋势的示例 ...

  4. Spring集成–强大的拆分器聚合器

    坚固是什么意思? 在本文的上下文中,健壮性是指在不立即返回到调用者的情况下管理流中的异常条件的能力. 在某些处理方案中, n个 m个回答足以做出结论. 通常具有这些趋势的示例处理场景是: 财务,保险和 ...

  5. 拆分器SplitContainer控件

    拆分器SplitContainer控件 原文:http://blog.csdn.net/warmspace2008/archive/2009/02/24/3934040.aspx 拆分器控件Split ...

  6. C++ Qt 05:Qt布局管理器 - 荒 木 - 博客园

    C++ Qt 05:Qt布局管理器 - 荒 木 - 博客园 下面我们以一个例子来初步了解Qt的组件定位技术,比如我们想做一个登录窗口,像下图这样,应该怎么做呢? 这还不简单嘛,在窗体上拖两个QLabe ...

  7. [Visual Studio 2022 C#]使用SplitContainer拆分器让一个Windows窗口秒变多个

    [Visual Studio 2022 C#]使用SplitContainer拆分器让一个Windows窗口秒变多个 从工具箱中添加控件 根据需要设置拆分器的方向 ☑必备:必须设置成[置于底层] 通过 ...

  8. 某牛的QT+ffmpeg 播放器 的readme

    http://download.csdn.net/source/2802201 write by :lbwave@sina.com QT+ffmpeg 大名顶顶的QT ffmpeg 我就不用说了.看看 ...

  9. C++基于ffmpeg和QT开发播放器~学习笔记

    C++基于ffmpeg和QT开发播放器 B站网址 https://www.bilibili.com/video/BV1h44y1t7D8?p=2&spm_id_from=pageDriver ...

最新文章

  1. 科普丨深度学习 vs 概率图模型 vs 逻辑学
  2. Linux 学习笔记_12_文件共享服务_3_NFS网络文件服务
  3. SQL server注入
  4. linux 如何解压.exe,linux下解压火狐浏览器压缩包 ./filefox 运行可执行程序报错问题...
  5. make条件判断ifeq,ifneq,ifdef,ifndef
  6. Java图书管理系统
  7. 组态王与DLT645-2007电能表通讯调试总结
  8. vs哪个版本好用_5个版本17款白金爱他美,究竟选哪个?德国版/澳洲版/卓萃/英国.....
  9. 第一次使用拉勾网求职经历
  10. NOIP2012 模拟试题二 腾讯大战360
  11. win7如何设置以管理员身份运行程序
  12. Google guava之BiMap简介说明
  13. 关于NGS中“depth”和“coverage”的理解
  14. 日语学习之——五十音图及单词(2)
  15. js下载文件方法记录
  16. 《金融学从入门到精通》读书摘记
  17. Multisim 数字计数器
  18. 钩陈/ 为什么会忍不住复训蟒营™
  19. c语言循环队列的销毁,C语言循环队列
  20. 第十章第三节 物体的浮沉条件及应用

热门文章

  1. 阿里开发规范【转载】
  2. 搜狗地图孔祥来谈开放API和地图服务
  3. 几种常见的跨域解决方法
  4. 使用Keras训练历史可视化(含踩雷)
  5. java基础:面向对象编程1-初步认识
  6. 【JAVA预备】课程目录
  7. php web应用开发娄不夜,PHP Web应用开发
  8. 价格敏感型消费者 | 画饼系列
  9. 使用openlayers中的ol.proj类实现EPSG:3857和EPSG:4326坐标数据相互转换
  10. js添加多个子节点_JS原生追加子节点