QT窗体控件自适应大小
介绍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窗体控件自适应大小相关推荐
- Winform窗体控件自适应大小
自己写的winform窗体自适应大小代码,代码比较独立,很适合贴来贴去不会对原有程序造成影响,可以直接继承此类或者把代码复制到自己的代码里面直接使用 借鉴了网上的一些资料,最后采用重写WndProc方 ...
- 基于PyQt5实现界面控件自适应大小
基于PyQt5实现界面控件自适应大小 界面控件自适应大小,点击窗口放大后,界面控件大小随之发生变化. 实现效果 实例1 点击窗口放大后: 实例2
- Qt界面优化:Qt窗体控件设置
Qt界面优化:Qt窗体控件设置 文章目录 Qt界面优化:Qt窗体控件设置 一.效果图 1.鼠标移动点击效果 2. Qt托盘效果 二.使用步骤 1. 背景图片的添加 2. 控件样式的更改 3. Qt窗体 ...
- Qt Creator 窗体控件自适应窗口大小布局
常见的软件窗口大小改变(最大化.手动改变时)需要窗口的部件能够自适应布局,而在Qt的应用程序界面设计中,对于像我一样的初学者如何实现窗口自适应调整还是要绕点弯路的.网上百度了很多,多数说的很含糊,还有 ...
- QT 布局,控件自适应大小 自动缩放 自动布局
有时,我们需要我们的布局或控件,随窗口变化而变化:这时就要求我们注意一下: 1. 先来说简单的布局控件自适应 首先拖动两个 verticalLayout 放到窗口: 右击空白处:右键菜单 ->布 ...
- java组件自适应窗口大小_java swing 窗口和控件自适应大小
本文记录java开发CS结构时怎么自适应屏幕大小以及控件跟随frame大小变化大小.位置和字体大小 需要注意: 1.代码必须放置在其构造方法中.如:我的frame1是我frame.java的名,则代码 ...
- C#窗体控件自适应程序框大小
实习:导师说加个容器就能实现,轻松且easy 弄了很久都没有成功,有瑕疵,最后发现原来是俄罗斯套娃. 解决办法:1.先添加一个容器,这个容器大小是全屏,属性Dock设置为fill,窗体变化后容器大小是 ...
- 窗体控件随窗体大小改变(仍有不足)
private void frmWatch_Load(object sender, EventArgs e){FormWidth = this.Width;FormHeight = this.Heig ...
- winformbutton边框怎么改_C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法
C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法 1.新建组件这里可以自定义一个Panel控件起名为PanelEx 2.增加一个BoderColor属性和BoderSize属性 pr ...
最新文章
- c语言编程题及答案-难,C语言常见编程题及答案40题
- 洛谷——3399 丝绸之路(背包)
- python类库32[多进程同步Lock+Semaphore+Event]
- 前端趋势榜:上周最有意思、又实用的 10 大 Web 项目 - 210924
- html 文字输出语音,html 录音与文本转语音demo
- 跟我一起学.NetCore之MVC过滤器,这篇看完走路可以仰着头走
- c#常用类库----计算机信息类
- java的dom4j怎么调_dom4j.jar 的调试方法
- 72000 Star 下载工具被 GitHub 下架,背后的数字千年版权法案是什么?
- php内li背景色,CSS_css中ul li的背景小图标属性设置的两种情况,这里我们分两种情况列出: ① - phpStudy...
- ECharts官网 标准地图实现
- Python原生爬虫 --- 50行代码爬取某直播网站主播名和人气值
- FPGA实现DDRIP核配置(Memory Interface Solutions)
- 犹他大学计算机科学毕业,2020年犹他大学排名TFE Times美国最佳计算机科学硕士专业排名第47...
- AWS KMS加密和解密
- 业界动态-新一代万亿级消息系统Pulsar的应用实践-03
- Assimp库调用mtl加载obj模型
- Java面试题(18)
- 不跟风,容器技术的真实优、缺点
- 13.Excel vba开发-合并单元格内容
热门文章
- mysql 代理作业_查看SQLServer 代理作业的历史信息
- Android旋转切换条目,Android:当我添加动态新的ListView条目时,ListView中的旋转器会丢失它们的值...
- uwsgi php,详解uWSGI的编码问题解决方法
- java线程栅栏_Java 多线程基础 - CyclicBarrier
- 二值信号量解决任务间资源共享问题
- 设计非常优秀的软件界面
- C/C++中的数据类型转换
- linux 挂载网络文件系统,[arm-linux-FL2440挂载网络文件系统共享文件]
- DialogFragment 全屏显示
- android ripple 大小,Android Ripple 旋钮水波纹效果(一)