pyqt5-QWidget坐标系统和大小和展示区域
获取坐标和尺寸:
坐标的获取视频教程:https://v.qq.com/x/page/t085892mzh9.html
x() y() 返回控件的坐标
相对于父控件的坐标(窗口框架左上角)
顶层控件(没有父控件)则相对于桌面的坐标
pos() x和y的组合
s=window1.pos() PyQt5.QtCore.QPoint(200, 100)
s1=s.x() 返回x坐标 s1=s.y() 返回y坐标
width() 控件的宽度,不包含任何窗口框架
height() 控件的高度,不包含任何窗口框架
size() width和height的组合
s=window1.size() PyQt5.QtCore.QSize(110, 100)
s.width()返回控件的宽度 s1=s.height() 返回控件的高度
geometry() 用户区域相对于父控件的位置和尺寸组合
s=window1.geometry() PyQt5.QtCore.QRect(120, 100, 110, 100) -->QRect(x, y, width, height)
rect() 0, 0, width, height的组合
s=window1.rect() PyQt5.QtCore.QRect(0, 0, 110, 100)
geometry() 用户区域相对于父控件的位置和尺寸组合 QRect(x, y, width, height)
frameSize() 框架大小 。一定要在show之后,否则数据错误
s=window.frameSize() PyQt5.QtCore.QSize(296, 339)
frameGeometry() 框架位置和大小。一定要在show之后,否则数据错误
s=window.frameGeometry() PyQt5.QtCore.QRect(55, 10, 296, 339) 参数1和参数2是move坐标 参数3和参数4是框架大小
注意: 控件显示完毕之后(show之后), 具体的位置或者尺寸数据才会正确
设置位置和尺寸:
move(x, y) 操控的是x, y;也就是pos 包括窗口框架
resize(width, height) 操控的是宽高 不包括窗口框架
如果小于最小值,就无效
setGeometry(x_noFrame, y_noFrame, width, height) 注意,此处参照为用户区域
#在show之后设置
adjustSize() 根据内容自适应大小
注意:单次有效,在设置内容后面使用
setFixedSize() 设置固定尺寸
最大和最小尺寸:
minimumWidth() 返回最小尺寸的宽度
minimumHeight() 返回最小尺寸的高度
minimumSize() 返回最小尺寸 PyQt5.QtCore.QSize()
maximumWidth() 返回最大尺寸的宽度
maximumHeight() 返回最大尺寸的高度
maximumSize() 返回最大尺寸
setMaximumWidth() 返回设置最大宽度
setMaximumHeight() 返回设置最大高度
setMaximumSize() 返回设置最大尺寸
setMinimumWidth() 返回设置最小宽度
setMinimumHeight() 返回设置最小高度
setMinimumSize() 返回设置最小尺寸
注意 控件完全展示前后会有所差异
控件内容展示区域:
setContentsMargins(左, 上, 右, 下) 设置控件内容展示区域到边框的距离
getContentsMargins() 获取内容边距 (左, 上, 右, 下) 元组
(50, 50, 0, 0) 就是展示区域到各边框的距离
contentsRect() 获取控件内容展示区域的位置和大小。
QRect(50, 50, 150, 50) 参数1参数2 :展示区域到控件左上角的坐标 参数3:展示区域的宽;参数4:展示区域的高
注意:必须是控件本身留够对应的大小