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应用构架,它提供了丰富的窗口部 ...
随机推荐
- 【57.97%】【codeforces Round #380A】Interview with Oleg
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- IOS计算两点之间的距离
//广州经纬度 CLLocationCoordinate2D guangZhouLocation; guangZhouLocation.latitude = 23.20; guangZhouLocat ...
- [Flexbox] Use Flex to Scale Background Image
In this lesson we will use Flexbox to scale a background image to fit on the screen of our React Nat ...
- 【Codeforces Round #185 (Div. 2) D】Cats Transport
[链接] 链接 [题意] 有n座山,m只猫. 每只猫都在其中的一些山上玩. 第i只猫在h[i]山上玩,且会在t[i]时刻出现在山脚下(然后就一直在那里等) 然后有p个人. 它们听从你的安排. 在某个时 ...
- Socket编程模型之完毕port模型
转载请注明来源:viewmode=contents">http://blog.csdn.net/caoshiying?viewmode=contents 一.回想重叠IO模型 用完毕例 ...
- css3-11 如何实现2D动画
css3-11 如何实现2D动画 一.总结 一句话总结:就是transform属性,属性值为1.translate() 2.rotate() 3.scale(),而这是哪个属性值是带参数的 ...
- Opencv分水岭算法——watershed自动图像分割用法
分水岭算法是一种图像区域分割法,在分割的过程中,它会把跟临近像素间的相似性作为重要的参考依据,从而将在空间位置上相近并且灰度值相近的像素点互相连接起来构成一个封闭的轮廓,封闭性是分水岭算法的一个重要特 ...
- php 小程序获取渠道二维码 保存
function ppost($url,$arr){ $post_data = json_encode($arr); $url=$url; $ch = curl_init(); curl_setopt ...
- 安装Win10+Ubuntu14.04双系统(uefi启动版)
说明 本教程基于个人电脑(型号:神舟K550d-i7 D1)成功安装测试发布,不同硬件环境可能有细微差异,为预防安装过程中出现意想不到的报错,重要数据请提前备份 硬件环境 cpu:Intel i7-4 ...
- 多校 hdu
欢迎參加--每周六晚的BestCoder(有米!) Solve this interesting problem Time Limit: 2000/1000 MS (Java/Others) M ...