Qt 的几个核心机制总结之 布局(QWidget可以设置setSizePolicy,而QSizePolicy有Fixed,minimum,maximum,preferred,expanding,ignore等7个属性,还可以横竖分开)
1.Qt布局的作用
Qt的布局是通过布局管理器来实现的,布局管理器负责在父类窗口部件区域构建子窗口部件,使得放置在窗体中的每个窗口部件都有一个适合的大小和位置,并且能够随着应用程序本身的变化而变化从而达到不改变整体的布局的结构的效果。相对于通过设定绝对位置来搭建界面的方法来讲有如下优点
1.1.父窗口改变的时候,子窗口不能作出相应的调整。
1.2.不用人工计算这些位置和大小
2.Qt中的布局类及继承关系:
QBoxLayout QHBoxLayout QVBoxLayout QGridLayout QFormLayout QStackedLayout
继承关系图如下:

QBoxLayout:直线布局,可以规定排序的方向是从左到右还是从右到左,从上到下还是从下到上布局
QHBoxLayout :水平布局
QVBoxLayout :垂直布局
QGridLayout : 将空间划分为若干个行和列,并把子窗口部件放置到划分成的一个个小空间中
QFormLayout :表格布局把布局空间划分为两列,一列一般放标签,另一列一般用于放置LableEdit之类的窗口部件。
QStackedLayout:把一系列窗口部件排列成堆叠的形式,每次只能顶部的部件是可见的。
3.改善布局结构
大小暗示sizeHint在未被重载的情况下,如果该窗口部件属于某个布局管理器,那么返回的值为QT为这个部件推荐的尺寸。如果不属于任何布局管理器的时候返回无效的值
最小大小暗示minimumsizehint :为某个窗口部件提供最小大小的限制。任何小于这个尺寸的窗口都被限制为这个大小
大小策略 QSizePolicy
Fix 不会发生任何的伸缩
minimum 推荐的大小是它的最小尺寸,它不会变得更小,但是可以变得更大
maximum 推荐的大小是它的最大尺寸,不会变得更大
preferred 推荐大小为优先选择,可以变大或者变小
expanding 能够感知到推荐的大小,但是会以尽可能大的空间来放置窗口部件
ignore 不能感知到推荐的大小,会以尽可能大的空间来放置窗口部件
伸缩因子
用于说明在增大窗体的时候,对不同的子窗口部件使用不同的放大比例。通过设置qsizePolicy::horizontalstretch qsizePolicy::verticalstretch来实现
大小限制
设置窗口的最大大小最小大小,通过sizeConstraint来获取,通过setsizeconstraint来设置
空白和边距
空白指的是整个布局四周距离窗体边缘的距离,间距指的是布局内部各个窗口部件之间的距离
空白设置setcontentmargins,间距设置setspacing
对于栅格布局和表格布局使用的是sethorizonspacing和setverticalspacing来设置。
4.布局管理器的基本操作
向布局中增加部件
向布局中删除部件
取消布局
应用一个布局
http://blog.csdn.net/jimmy2013_1_1/article/details/8598264
Qt 的几个核心机制总结之 布局(QWidget可以设置setSizePolicy,而QSizePolicy有Fixed,minimum,maximum,preferred,expanding,ignore等7个属性,还可以横竖分开)的更多相关文章
- 第七章 探秘Qt的核心机制-信号与槽
第七章 探秘Qt的核心机制-信号与槽 注:要想使用Qt的核心机制信号与槽,就必须在类的私有数据区声明Q_OBJECT宏,然后会有moc编译器负责读取这个宏进行代码转化,从而使Qt这个特有的机制得到使用 ...
- Qt核心机制与原理
转: https://blog.csdn.net/light_in_dark/article/details/64125085 ★了解Qt和C++的关系 ★掌握Qt的信号/槽机制的原理和使用方法 ★ ...
- Qt核心机制和原理
转:http://blog.csdn.net/light_in_dark/article/details/64125085 ★了解Qt和C++的关系 ★掌握Qt的信号/槽机制的原理和使用方法 ★了解Q ...
- qt中信号与槽机制
一. 简介 就我个人来理解,信号槽机制与Windows下消息机制类似,消息机制是基于回调函数,Qt中用信号与槽来代替函数指针,使程序更安全简洁. 信号和槽机制是 Qt 的核心机制,可以让编程人员将互不 ...
- QT的信号与槽机制介绍
信号与槽作为QT的核心机制在QT编程中有着广泛的应用,本文介绍了信号与槽的一些基本概念.元对象工具以及在实际使用过程中应注意的一些问题. QT是一个跨平台的C++ GUI应用构架,它提供了丰富的窗 ...
- Qt 的信号与槽机制介绍(10个要注意的问题)
QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT ...
- Qt 的内部进程通信机制
Qt 的内部进程通信机制 续欣 (xxin76@hotmail.com), 博士.大学讲师 2004 年 4 月 01 日 Qt 作为一种跨平台的基于 C++ 的 GUI 系统,能够提供给用户构造图形 ...
- 【qt】QT 的信号与槽机制
QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT ...
- QT的信号和槽机制简介
信号与槽作为QT的核心机制在QT编程中有着广泛的应用,本文介绍了信号与槽的一些基本概念.元对象工具以及在实际使用过程中应注意的一些问题. QT是一个跨平台的C++ GUI应用构架,它提供了丰富的窗口部 ...
随机推荐
- 基于element ui的图片预览插件
写插件很简单,满足两个条件即可,一.基本的逻辑思路,二.熟悉插件语法要求.本次Vue插件也比较简单,点击“查看图片”用轮播的方式限制用户上传的图片,如图: 项目采用的是vue-element-admi ...
- autohotkey excel getfullname (ComObjActive)
- (转)chrome浏览器收藏夹(书签)的导出与导入
导出chrome浏览器的书签到一个文件中.首先选择chrome浏览器的书签管理器菜单.然后点击“整理”,然后选择“将书签导出到html文件”. 步骤阅读 2 将导出的html文件保存,用于下次导入,这 ...
- 数学之路-python计算实战(5)-初识numpy以及pypy下执行numpy
N .有用的线性代数.傅里叶变换和随机数生成函数.numpy和稀疏矩阵运算包scipy配合使用更加方便.NumPy(Numeric Python)提供了很多高级的数值编程工具,如:矩阵数据类型.矢量处 ...
- 《今天你买到票了吗?——从铁道部12306.cn站点漫谈电子商务站点的“海量事务快速处理”系统》
<今天你买到票了吗?--从铁道部12306.cn站点漫谈电子商务站点的"海量事务快速处理"系统> 首发地址: http://bbs.hpx-party.org/thre ...
- ios开发知识点补充
一:self class,self superClass super class super superClass 的区别 新建SubPerson继承person,在SubPerson中打印如下: ...
- mysql分区功能(三个文件储存一张表)(分区作用)(分区方式)
mysql分区功能(三个文件储存一张表)(分区作用)(分区方式) 一.总结 1.mysql数据表的存储方式(三个文件储存一张表): 一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放 ...
- css hover控制其他元素
<html> <body> <style> #a:hover {color : #FFFF00;} #a:hover > #b:first-child{col ...
- $.getJSON 跨域
//支持跨域 $.getJSON(url + '&callback=?', function(res) { if (res.status === 0) { console.log(res.re ...
- 文件流结尾的EOF详解
我学习C语言的时候,遇到的一个问题就是EOF. 它是end of file的缩写,表示"文字流"(stream)的结尾.这里的"文字流",可以是文件(file) ...