pyqt5-QWidget位置和大小
1、位置
(1)x和y
- 分别返回当前组件相对于所在容器左上顶点在水平方向和垂直方向上的距离,类型为int,单位是像素
- 当前组件在父容器中完全显示,则x和y为正数,否则超出范围,会出现负数。
- 如果当前组件作为窗口组件独立显示,其父容器则是整个屏幕,此时是标题栏的左上顶点对应屏幕左上顶点计算
- 此时,如果当前组件向左拖动,部分超出屏幕,其x为负值
- 如果当前组件是非窗口组件,在其它容器组件中,比如在QWidget、QGroupBox等中,那么此时是当前组件的左上顶点与其父容器的左上顶点计算
- 如果父容器是窗口组件,是包含标题栏部分的,而是对应主界面区域的左上顶点
(2)pos
pos(self) -> QPoint
- 返回QPoint对象,包含x和y
- 不存在对应的设置x和y,也不存在对应设置pos的方法。一般用move或setGeometry方法实现操作
(3)move
move(self, QPoint)
move(self, int, int)
- 移动组件的位置
- 两种调用方法,设置是相对于父组件的绝对位置
2、大小
(1)width和height
- 返回组件的宽度和高度,类型为int,单位是像素
(2)size
- 返回QSize对象,包含width和height数据
(3)setBaseSize
setBaseSize(self, basew: int, baseh: int)
setBaseSize(self, s: QSize)
- 设置初始的尺寸
(4)resize
resize(self, a0: QSize)
resize(self, w: int, h: int)
- 改变组件尺寸,即设置组件的width和height属性
- 可以在show方法前初始化,也可以之后再调用
- 注意,并不存在直接设置width和height的方法
setBaseSize貌似无效果,一般未使用
(5)hint相关
- 在 widget 有 layout 的情况下,其 sizeHint() 函数返回的是有效值作为其自身实际尺寸的参考;
- sizeHint() 返回的值并不一定会作为 widget 的实际尺寸,因为 widget 的尺寸的决定还有其它因素作用;
(6)变化范围
# 最大宽度和高度
setMaximumWidth(self, maxw: int)
setMaximumHeight(self, maxh: int)
setMaximumSize(self, maxw: int, maxh: int)
setMaximumSize(self, s: QSize)
# 最小宽度和高度
setMinimumWidth(self, minw: int)
setMouseTracking(self, enable: bool)
setMinimumSize(self, minw: int, minh: int)
setMinimumSize(self, s: QSize)
# 固定宽度和高度,不可变
setFixedWidth(self, w: int)
setFixedHeight(self, h: int)
setFixedSize(self, a0: QSize)
setFixedSize(self, w: int, h: int)
(7)geometry几何
frameGeometry(self) -> QRect
geometry(self) -> QRect
normalGeometry(self) -> QRect
restoreGeometry(self, geometry: Union[QByteArray, bytes, bytearray]) -> bool
saveGeometry(self) -> QByteArray
setGeometry(self, a0: QRect)
setGeometry(self, ax: int, ay: int, aw: int, ah: int)
updateGeometry(self)
- QRect包含x和y,width和height数据
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战