Qt库版本:5.2.1

    Qt Creator版本:3.0.1

1 QSplitter的用途

QSplitter使得用户可以通过拖动子窗口之间的边界来控制它们的大小,例如

图1 窗口拆分示意图

2 QSplitter的添加方法

QSplitter的添加方法有2种:a)通过Qt Creator的界面设计工具添加;b)直接使用C++代码添加。其中,方法a最为直观和方便,本文将重点介绍这种方法,而方法b可以见参考资料[1]。

2.1 通过Qt Creator添加QSplitter控件

与Push Button等控件的添加方法不同,在“设计”视图左侧的控件列表中,并没有对应的QSplitter控件,而是在上方面的工具栏中,如下图红色圈住的位置所示:

图2.1 设置窗口拆分的按钮

与上图中左侧的Push Button等控件的使用方法不同的是,QSplitter不可以直接使用拖放的方式将其添加到界面中。根据参考资料[2][3]的说明可知,使用QSplitter之前,需要先添加将被分裂的两个控件,然后同时选中它们,这时候上图的QSplitter按钮变成可用状态,点击“水平分裂器”即可将它们进行水平的布局。

2.2 取消QSplitter

取消上述的分裂布局的方法是,同时选中已经被分裂的控件,然后点击工具栏上方的“打破布局(B)”按钮即可,如下图所示:

图2.2 取消窗口拆分的按钮

3 动态改变子窗口大小

默认情况下,使用鼠标拖动分割子窗口间的边界时,子窗口会动态的改变其大小。然而,如果希望在松开鼠标时才改变其大小,可以设置下面的参数,取消其勾选状态即可:

4 子窗口最小尺寸

在拖动子窗口间的边界线时,有时我们并不希望子窗口的宽度或者高度被缩小到零,因此可以设置子窗口的最小尺寸:

图 4.1 子窗口属性截图

然而,就算是设置了上述值,还不行,还需要将下面的选择去掉勾选状态

图4.2 QSplitter属性截图

5 子窗口比例

默认情况下,QSplliter中各个子窗口的大小等比例的,但是很多时候我们并不希望这样,因此参考资料[5][6][7][8]都提到如何解决这个问题,但都是直接通过C++代码的方式去实现的。这里主要介绍如何通过Qt Creator的“设计”界面来达到同样的目的。

选中QSplitter中的子窗口,然后设置其sizePolicy属性如下图所示

图5 缩放因子设置

分别将QSplliter中各子窗口的“水平伸展”值设置为非零的值。此值越大,表示对应的子窗口在QSplliter中的分割比例越大(分割效果要运行程序时才呈现出来)。

7 实例

学习Qt编程的一个很好的方法是学习其例程序。关于QSplitter的精彩例程有“chip”。

参考资料

[1]QSplitter 学习

[2]Using Layouts in Qt Designer

[3]qt 如何把qsplitter 添加到主窗口

[4]QSplitter的比例分割问题

[5]QT layout 使用总结

[6]QSplitter的比例分割有关问题

[7]QSplitter setStretchFactor 函数的理解

[8]QSplitter大小

[9]请问QSplitter怎么固定大小呢?

最新文章

  1. Markdown 图片助手-MarkdownPicPicker
  2. 夺命雷公狗-----React---22--小案例之react经典案例todos(完成数据的遍历)
  3. linux进程间通信-共享内存
  4. [Java集合] 彻底搞懂HashMap,HashTable,ConcurrentHashMap之关联.
  5. javaSE ---OOP总结
  6. 重新想象 Windows 8 Store Apps (35) - 通知: Toast 详解
  7. php无法上传大文件完美解决方案
  8. NGUI学习笔记-Label
  9. MVC-各种传值方式
  10. vlc_input buffer管理 & 时钟同步(转)
  11. POJ1789 Truck History(prim)
  12. Visual Studio 2012的新技术特性
  13. Windows Azure 安全最佳实践 - 第 2 部分:Azure 提供哪些现成可用的安全机制
  14. CentOS下redis集群安装
  15. xBIM WeXplorer 设置模型颜色
  16. The Best Books on Game Dev
  17. linux下日志文件error监控报警脚本分享
  18. orcl 之 导入和导出
  19. Java并发编程-ReentrantLock源码分析
  20. Execute SQL Task 如何返回结果数据集

热门文章

  1. vue cli3.0快速搭建项目详解(强烈推荐)
  2. vue中使用echarts(vue+vue-cli+axios+jsonp+echarts)
  3. 【leetcode】1254. Number of Closed Islands
  4. ConfigMap-k8s
  5. Linux 开启相关端口及查看已开启端口
  6. head first 设计模式笔记5-单例模式
  7. 遍历文件夹 DirectoryInfo类
  8. 《剑指offer》算法题第二天
  9. #5 DIV2 A POJ 3321 Apple Tree 摘苹果 构建线段树
  10. 博主的OI流水账