当前位置:网站首页>布局管理器
布局管理器
2022-08-04 07:54:00 【比特冬哥】
所谓 GUI 界面,归根结底,就是一堆组件的叠加。我们创建一个窗口,把按钮放上面,把图标放上面,这样就成了一个界面。在放置时,组件的位置尤其重要。我们必须要指定组件放在哪里,以便窗口能够按照我们需要的方式进行渲染。这就涉及到组件定位的机制。
Qt 提供了两种组件定位机制:绝对定位和布局定位
绝对定位就是一种最原始的定位方法:给出这个组件的坐标和长宽值。
这样,Qt 就知道该把组件放在哪里以及如何设置组件的大小。但是这样做带来的一个问题是,如果用户改变了窗口大小,比如点击最大化按钮或者使用鼠标拖动窗口边缘,采用绝对定位的组件是不会有任何响应的。这也很自然,因为你并没有告诉 Qt,在窗口变化时,组件是否要更新自己以及如何更新。或者,还有更简单的方法:禁止用户改变窗口大小。但这总不是长远之计。
布局定位: 只要把组件放入某一种布局,布局由专门的布局管理器进行管理。当需要调整大小或者位置的时候,Qt 使用对应的布局管理器进行调整。
布局定位完美的解决了使用绝对定位的缺陷。
Qt 提供的布局中以下三种是我们最常用的:
QHBoxLayout: 按照水平方向从左到右布局;
QVBoxLayout: 按照竖直方向从上到下布局;
QGridLayout: 在一个网格中进行布局,类似于 HTML 的 table。
1. 系统提供的布局控件

这4个为系统给我们提供的布局的控件,但是使用起来不是非常的灵活。
2. 利用widget做布局
第二种布局方式是利用控件里的widget来做布局,在Containers中
在widget中的控件可以进行水平、垂直、栅格布局等操作,比较灵活。
再布局的同时我们需要灵活运用弹簧的特性让我们的布局更加的美观,下面是一个登陆窗口,利用widget可以搭建出如下登陆界面:
边栏推荐
- redis stream 实现消息队列
- Distributed Computing Experiment 4 Random Signal Analysis System
- 并查集介绍和基于并查集解决问题——LeetCode 952 按公因数计算最大组件大小
- 金仓数据库KingbaseES客户端编程接口指南-JDBC(8. JDBC 元数据处理)
- Secondary network security competition C module MS17-010 batch scanning
- LeetCode 135. 分发糖果
- 高等代数_证明_对称矩阵属于不同特征值的特征向量正交
- GBase 8c中怎么查询数据库配置参数,例如datestyle。使用什么函数或者语法呢?
- GIS数据与CAD数据间带属性字段互相转换还原工具,解决ArcGIS等软件进行GIS数据转CAD数据无法保留属性字段问题
- 两日总结八
猜你喜欢

经典递归回溯问题之——解数独(LeetCode 37)

中职网络安全竞赛C模块MS17-010批量扫描

并查集介绍和基于并查集解决问题——LeetCode 952 按公因数计算最大组件大小

Distributed Computing Experiment 1 Load Balancing

2022爱分析· 银行数字化厂商全景报告

8.2学习记录

【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解

2022的七夕,奉上7个精美的表白代码,同时教大家改源码快速自用

【论文笔记】—低照度图像增强—Supervised—RetinexNet—2018-BMVC
![[Paper Notes] - Low Illumination Image Enhancement - Supervised - RetinexNet - 2018-BMVC](/img/54/685fb2620aa53416437943705d3d38.png)
[Paper Notes] - Low Illumination Image Enhancement - Supervised - RetinexNet - 2018-BMVC
随机推荐
Redis分布式锁的应用
Typora_Markdown_图片标题(题注)
GBase 8c中怎么查询数据库配置参数,例如datestyle。使用什么函数或者语法呢?
无人驾驶运用了什么技术,无人驾驶技术是
Typora颜色公式代码大全
电脑系统数据丢失了是什么原因?找回方法有哪些?
MySQL group_concat()详解
将回调函数转为Flow
并查集介绍和基于并查集解决问题——LeetCode 952 按公因数计算最大组件大小
安装GBase 8c数据库的时候,报错显示“Resource:gbase8c already in use”,这怎么处理呢?
MMDetection finetune
两日总结六
MySQL BIGINT 数据类型
leetcode 22.7.31(1)两数之和 (2)整数除法
Redis非关系型数据库
[想要访问若依后台]若依框架报错401请求访问:error认证失败,无法访问系统资源
轻量化Backbone VGNetG成就“不做选择,全都要”轻量化主干网络
Lightweight Backbone VGNetG Achieves "No Choice, All" Lightweight Backbone Network
智能健身动作识别:PP-TinyPose打造AI虚拟健身教练!
powershell和cmd对比