QT之ui控件随窗口布局的大小而自适应改变

QT之ui窗口自适应布局

新建个工程说明,我们通过ui界面实现的此效果,所以此处一定勾上Generate form:

根据开发电脑的系统选择套件
点开widget.ui,如图

鼠标随意托几个常用控件展示,如图

三个控件,如图,水平布局,布局知识看文末参考博文

下面是自适应布局的2个关键设置

sizePolicy策略:

图中,控件的sizePolicy策略将决定上面这三个控件组在自适应成的控件组的分配策略。

Fixed               控件大小不能改变

Minimum         控件的sizeHint为控件的最小尺寸。控件不能小于这个sizeHint,但是可以放大。

Maximum        控件的sizeHint为控件的最大尺寸,控件不能放大,但是可以缩小到它的最小的允许尺寸

Preferred        控件的sizeHint是它的sizeHint,但是可以放大或者缩小

MinimumExpending         控件已经是最新值,但可以放大

Expanding                        控件可以自行增大或者缩小

Ignored                             控件将获得尽可能多的空间。

layout设置:

layoutXXmargin:表示设置该布局器中的 子控件 距离 父控件边框 的上下左右距离


layoutSpacing:表示子控件它们之间的距离


layoutStretch:设置里面子控件它们的宽度或者高度显示比例。注意不是所有值都有效的(合理),如果无效,我们需要都设为非0值,就有效了。

layoutSizeConstraint:布局器的尺寸约束,比如被压缩或拉伸时候,控制尺寸的策略是怎样的,这个跟QWidget的sizePolicy属性是一个意思,比如固定,扩展 ... 

在这个布局中

2、3、4:水平布局

5、6垂直布局,56又与7水平布局

567与234垂直布局

234567与1垂直布局自此形成一个整体。

其中单个子控件的sizePolicy策略我都选择了Expanding,放便展示,具体情况具体选择

点击旁边的空白位置,(其实就是选择此Widget)调整到合适大小。如下图

这里我直接将宽度改成380*350,点击空白部分,点击布局-栅格布局,即将1234567这个整体与此Widget(380*350)绑定在一起。整体会随着此Widget的大小改变而改变。

运行看一下效果

鼠标拖动窗口边框,改变大小,对应控件也改变。

这里控件的改变就是上文提到的sizePolicy策略,单个控件怎么改变,由自己设定,
组合之间怎么改变则是上文中layout的设置。
总结就是将用到的控件布局成一个整体,再通过栅格布局将其绑定到Widget上,其实这也很好理解,若是我们没有设置这些策略,没有栅格跟随Widget,在窗口改变时系统也没办法判定控件该怎么,自然也就默认不动了。

 这里我们主要展示自适应布局,至于具体怎么布的好看,布局的知识,参考这些篇文章吧

Qt入门学习之——布局管理器_qt 打破布局-CSDN博客

QT中layoutstretch属性简析_qt layoutstretch-CSDN博客

qt 如何设计好布局和漂亮的界面。_qt 界面-CSDN博客

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值