布局管理
2021-7-21
| 2023-8-2
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
notion image

绝对定位

每个程序都是以像素为单位区分元素的位置,衡量元素的大小,所以完全可以使用绝对定位搞定每个元素和窗口的位置
但是有局限性:
  1. 元素不会随着更改窗口的位置和大小而变化
  1. 不能适用于不同的平台和不同分辨率的显示器
  1. 更改应用字体大小会破坏布局
  1. 如果决定重构这个应用,需要全部计算一下每个元素的位置和大小
notion image
 
 

基类——QLayout

QLayout抽象了各种类的共性
 
 
 

盒布局

使用盒布局能让程序具有更强的适应性。这个才是布局一个应用的更合适的方式。QHBoxLayoutQVBoxLayout是基本的布局类,分别是水平布局和垂直布局. 如果我们需要把两个按钮放在程序的右下角,创建这样的布局,我们只需要一个水平布局加一个垂直布局的盒子就可以了。再用弹性布局增加一点间隙.
notion image
addStretch(1),这个函数如何确定其中的参数大小? addStretch函数的作用是在布局器中增加一个伸缩量,里面的参数表示QSpacerItem的个数,默认值为零,会将放在layout中的空间压缩成默认的大小,例如用addStretch函数实现将QHBoxLayout的布局器的空白空间分配
notion image
 
 
 

栅格布局

这种布局是把窗囗分为行和列,创建和使用栅格布局,需要使用QGridLayout模块.
栅格布局是这样工作的:它计算了位于其中的空间,然后将它们合理的划分成若干个行(row)和列(column),并把每个由它管理的窗口部件放置在合适的单元之中,这里所指的单元(cell)即是指由行和列交叉所划分出来的空间
坐标分布是这样的:
notion image
notion image

制作提交反馈信息的布局

组件能跨列和跨行展示:
notion image
 

表单布局

QFormLayout管理输入型控件和关联的标签组成的那些Form表单
QFormLayout是一个方便的布局类,其中的控件以两列的形式被布局在表单中.左列包括标签,右列包含输入控件,例如:QLineEdit、QSpinBox、QTextEdit等.
notion image
 

堆栈布局

notion image
  • Python
  • PyQT5
  • 主窗口Signals&Slots
    目录