介绍QT中的几种常见布局

常用的布局方法:

(1)使用水平布局类QHBoxLayout;

(2)使用垂直布局类QVBoxLayout;

(3)使用网格布局类QGridLayout;

(4)使用表格布局类QFormLayout;

(5)使用分组布局类QStackLayout(QStackedLayout类把子控件进行分组或者分页,一次只显示一组或者一页,隐藏其他组或者页上的控件)。

当整体的布局完成以后控件就可以跟着界面放大缩小了

要想是控件根据窗体进行调整,最为重要的一点就是设置窗口部件的大小策略,各控件均有这一项设置,如下图所示。

在这次项目中,当时没有对两个窗体设置最小大小,以及策略,结果每次布局都会缩小最小或者布局很难看。

这部分具体的参数解释摘录如下:

结合控件的SizePolicy属性,来控制布局管理中的控件的尺寸自适应方式。

控件的sizePolicy说明控件在布局管理中的缩放方式。Qt提供的控件都有一个合理的缺省sizePolicy,但是这个缺省值有时不能适合所有的布局,开发人员经常需要改变窗体上的某些控件的sizePolicy。一个QSizePolicy的所有变量对水平方向和垂直方向都适用。下面列举了一些最长用的值:

A. Fixed:控件不能放大或者缩小,控件的大小就是它的sizeHint。

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

放大。

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

的允许尺寸。

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

E. Expandint:控件可以自行增大或者缩小

注:sizeHint(布局管理中的控件默认尺寸,如果控件不在布局管理中就为无效的值)

所以对于需要根据窗口大小对应改变的部件我这里就设置为Expandint。

在部件大小策略的下方还有伸缩因子的设置,用于设置窗口部件在伸缩过程中的对应比例,这部分可以自行摸索。

要想实现随着窗口自动缩放,很重要的一点是需要设置顶级布局,对于一个窗口来说,只能有一个布局成为它的顶级布局,而刚刚的设置还只是控件之间的布局,因此需要放入窗体布局中进行布局。

在没有控件的地方右击-布局-在状体布局中布局,如下图所示:

接下来把需要布局的布局拖放到窗体布局中,这儿可以在右侧对象中选择,然后将控件向上拖入红框中(发现这一步不做也可以,直接进行下一步,不清楚在窗体布局中布局这项是啥区别),最后再在窗体没有控件出右击-布局-选择水平或者垂直布局(因为我之前已经是栅格布局了,相当于只有一个整体布局,因此这里选择哪一个没有区别)下图是操作前后对象窗口的对比。

布局完成后效果如下:

到这儿,窗体就可以自由缩放了,由于我这里是使用label控件显示图像,因此窗体大小调整,图像会自动调整。

总结:一开始绕弯主要在两个地方,一个是控件的SizePolicy属性设置,二是一定要设置顶级布局。

最终实现布局成品,最小大小是这个样子

点击右上角方法按钮后

QT窗体控件自适应大小相关推荐

  1. Winform窗体控件自适应大小

    自己写的winform窗体自适应大小代码,代码比较独立,很适合贴来贴去不会对原有程序造成影响,可以直接继承此类或者把代码复制到自己的代码里面直接使用 借鉴了网上的一些资料,最后采用重写WndProc方 ...

  2. 基于PyQt5实现界面控件自适应大小

    基于PyQt5实现界面控件自适应大小 界面控件自适应大小,点击窗口放大后,界面控件大小随之发生变化. 实现效果 实例1 点击窗口放大后: 实例2

  3. Qt界面优化:Qt窗体控件设置

    Qt界面优化:Qt窗体控件设置 文章目录 Qt界面优化:Qt窗体控件设置 一.效果图 1.鼠标移动点击效果 2. Qt托盘效果 二.使用步骤 1. 背景图片的添加 2. 控件样式的更改 3. Qt窗体 ...

  4. Qt Creator 窗体控件自适应窗口大小布局

    常见的软件窗口大小改变(最大化.手动改变时)需要窗口的部件能够自适应布局,而在Qt的应用程序界面设计中,对于像我一样的初学者如何实现窗口自适应调整还是要绕点弯路的.网上百度了很多,多数说的很含糊,还有 ...

  5. QT 布局,控件自适应大小 自动缩放 自动布局

    有时,我们需要我们的布局或控件,随窗口变化而变化:这时就要求我们注意一下: 1. 先来说简单的布局控件自适应 首先拖动两个 verticalLayout 放到窗口: 右击空白处:右键菜单 ->布 ...

  6. java组件自适应窗口大小_java swing 窗口和控件自适应大小

    本文记录java开发CS结构时怎么自适应屏幕大小以及控件跟随frame大小变化大小.位置和字体大小 需要注意: 1.代码必须放置在其构造方法中.如:我的frame1是我frame.java的名,则代码 ...

  7. C#窗体控件自适应程序框大小

    实习:导师说加个容器就能实现,轻松且easy 弄了很久都没有成功,有瑕疵,最后发现原来是俄罗斯套娃. 解决办法:1.先添加一个容器,这个容器大小是全屏,属性Dock设置为fill,窗体变化后容器大小是 ...

  8. 窗体控件随窗体大小改变(仍有不足)

    private void frmWatch_Load(object sender, EventArgs e){FormWidth = this.Width;FormHeight = this.Heig ...

  9. winformbutton边框怎么改_C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法

    C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法 1.新建组件这里可以自定义一个Panel控件起名为PanelEx 2.增加一个BoderColor属性和BoderSize属性 pr ...

最新文章

  1. c语言编程题及答案-难,C语言常见编程题及答案40题
  2. 洛谷——3399 丝绸之路(背包)
  3. python类库32[多进程同步Lock+Semaphore+Event]
  4. 前端趋势榜:上周最有意思、又实用的 10 大 Web 项目 - 210924
  5. html 文字输出语音,html 录音与文本转语音demo
  6. 跟我一起学.NetCore之MVC过滤器,这篇看完走路可以仰着头走
  7. c#常用类库----计算机信息类
  8. java的dom4j怎么调_dom4j.jar 的调试方法
  9. 72000 Star 下载工具被 GitHub 下架,背后的数字千年版权法案是什么?
  10. php内li背景色,CSS_css中ul li的背景小图标属性设置的两种情况,这里我们分两种情况列出: ① - phpStudy...
  11. ECharts官网 标准地图实现
  12. Python原生爬虫 --- 50行代码爬取某直播网站主播名和人气值
  13. FPGA实现DDRIP核配置(Memory Interface Solutions)
  14. 犹他大学计算机科学毕业,2020年犹他大学排名TFE Times美国最佳计算机科学硕士专业排名第47...
  15. AWS KMS加密和解密
  16. 业界动态-新一代万亿级消息系统Pulsar的应用实践-03
  17. Assimp库调用mtl加载obj模型
  18. Java面试题(18)
  19. 不跟风,容器技术的真实优、缺点
  20. 13.Excel vba开发-合并单元格内容

热门文章

  1. mysql 代理作业_查看SQLServer 代理作业的历史信息
  2. Android旋转切换条目,Android:当我添加动态新的ListView条目时,ListView中的旋转器会丢失它们的值...
  3. uwsgi php,详解uWSGI的编码问题解决方法
  4. java线程栅栏_Java 多线程基础 - CyclicBarrier
  5. 二值信号量解决任务间资源共享问题
  6. 设计非常优秀的软件界面
  7. C/C++中的数据类型转换
  8. linux 挂载网络文件系统,[arm-linux-FL2440挂载网络文件系统共享文件]
  9. DialogFragment 全屏显示
  10. android ripple 大小,Android Ripple 旋钮水波纹效果(一)