• 【Qt开发】QSplitter的使用和设置


    Qt库版本:5.2.1

    Qt Creator版本:3.0.1

    1 QSplitter的用途

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

    本文福利,费领取Qt开发学习资料包、技术视频,内容包括(Qt实战项目视频教程+代码,C++语言基础,C++设计模式,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

    添加图片注释,不超过 140 字(可选)

    图1 窗口拆分示意图

    2 QSplitter的添加方法

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

    2.1 通过Qt Creator添加QSplitter控件

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

    添加图片注释,不超过 140 字(可选)

    图2.1 设置窗口拆分的按钮

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

    2.2 取消QSplitter

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

    添加图片注释,不超过 140 字(可选)

    图2.2 取消窗口拆分的按钮

    3 动态改变子窗口大小

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

    添加图片注释,不超过 140 字(可选)

    4 子窗口最小尺寸

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

    添加图片注释,不超过 140 字(可选)

    图 4.1 子窗口属性截图

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

    添加图片注释,不超过 140 字(可选)

    图4.2 QSplitter属性截图

    5 子窗口比例

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

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

    添加图片注释,不超过 140 字(可选)

    图5 缩放因子设置

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

    本文福利,费领取Qt开发学习资料包、技术视频,内容包括(Qt实战项目视频教程+代码,C++语言基础,C++设计模式,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

  • 相关阅读:
    剑指offer专项突击版第26天
    京东工业API接口解析,实现根据ID取商品详情
    面试高频的ES6中的Map和Set数据结构详解
    腾讯云轻量应用服务器ubuntu使用xshell安装宝塔面板
    Selenium 中的 XPath
    设计模式——单例模式
    弘辽科技:淘宝店铺一直没流量怎么办?淘宝网店没有流量怎么办?
    上岸美团这份《Java岗面试指南》被772人催更,我连夜肝了出来
    解决OpenSSL加入到在Visual Studio 2019中编译返回LNK2019错误
    Node + Express 后台开发 —— 起步
  • 原文地址:https://blog.csdn.net/m0_73443478/article/details/133882022