type
status
date
slug
summary
tags
category
icon
password
Property
绝对定位
每个程序都是以像素为单位区分元素的位置,衡量元素的大小,所以完全可以使用绝对定位搞定每个元素和窗口的位置
但是有局限性:
- 元素不会随着更改窗口的位置和大小而变化
- 不能适用于不同的平台和不同分辨率的显示器
- 更改应用字体大小会破坏布局
- 如果决定重构这个应用,需要全部计算一下每个元素的位置和大小
基类——QLayout
QLayout抽象了各种类的共性
盒布局
使用盒布局能让程序具有更强的适应性。这个才是布局一个应用的更合适的方式。
QHBoxLayout
和QVBoxLayout
是基本的布局类,分别是水平布局和垂直布局.
如果我们需要把两个按钮放在程序的右下角,创建这样的布局,我们只需要一个水平布局加一个垂直布局的盒子就可以了。再用弹性布局增加一点间隙.addStretch(1)
,这个函数如何确定其中的参数大小?
addStretch
函数的作用是在布局器中增加一个伸缩量,里面的参数表示QSpacerItem的个数,默认值为零,会将放在layout中的空间压缩成默认的大小,例如用addStretch函数实现将QHBoxLayout
的布局器的空白空间分配栅格布局
这种布局是把窗囗分为行和列,创建和使用栅格布局,需要使用
QGridLayout
模块.栅格布局是这样工作的:它计算了位于其中的空间,然后将它们合理的划分成若干个行(row)和列(column),并把每个由它管理的窗口部件放置在合适的单元之中,这里所指的单元(cell)即是指由行和列交叉所划分出来的空间
坐标分布是这样的:
制作提交反馈信息的布局
组件能跨列和跨行展示:
表单布局
QFormLayout
管理输入型控件和关联的标签组成的那些Form表单QFormLayout
是一个方便的布局类,其中的控件以两列的形式被布局在表单中.左列包括标签,右列包含输入控件,例如:QLineEdit、QSpinBox、QTextEdit等.