PySide6 GUI 学习笔记——常用类及控件使用方法(常用类边距QMargins)

发布于:2025-05-11 ⋅ 阅读:(7) ⋅ 点赞:(0)

类概述

QMargins用于描述矩形四周边框尺寸,包含左(left)、上(top)、右(right)、下(bottom)四个整型边距值。当所有边距均为0时,isNull() 返回 True。该类支持流式操作和比较运算。

版本信息: Qt 4.6 新增该类

方法总览

方法签名 参数类型 返回类型 说明
__init__() - QMargins 构造所有边距为0的QMargins对象
__init__(left: int, top: int, right: int, bottom: int) int, int, int, int QMargins 构造指定边距的对象
bottom() -> int - int 获取下边距值
isNull() -> bool - bool 判断是否所有边距为0
left() -> int - int 获取左边距值
__ne__(m2: QMargins) -> bool QMargins bool 判断两个边距对象是否不等
__mul__(factor: int) -> QMargins int QMargins 所有边距乘以整数因子,返回新对象
__mul__(factor: int) -> QMargins int QMargins 重载:整数相乘
__mul__(factor: float) -> QMarginsF float QMarginsF 所有边距乘以浮点数因子,返回QMarginsF对象
__imul__(factor: int) -> QMargins int QMargins 原地整数乘法,返回自身引用
__imul__(factor: float) -> QMarginsF float QMarginsF 重载:浮点数乘法
__add__(m2: QMargins) -> QMargins QMargins QMargins 两对象对应边距相加
__add__(lhs: int) -> QMargins int QMargins 所有边距加相同整数值
__iadd__(margins: QMargins) -> QMargins QMargins QMargins 原地加法运算
__iadd__(addend: int) -> QMargins int QMargins 所有边距加相同整数值
__sub__(rhs: int) -> QMargins int QMargins 所有边距减相同整数值
__sub__(m2: QMargins) -> QMargins QMargins QMargins 两对象对应边距相减
__isub__(margins: QMargins) -> QMargins QMargins QMargins 原地减法运算
__isub__(subtrahend: int) -> QMargins int QMargins 所有边距减相同整数值
__truediv__(divisor: int) -> QMargins int QMargins 所有边距除以整数
__truediv__(divisor: float) -> QMarginsF float QMarginsF 返回浮点边距对象
operator/=(divisor: int) -> QMargins int QMargins 原地整数除法
operator/=(divisor: float) -> QMarginsF float QMarginsF 返回浮点边距对象
__eq__(m2: QMargins) -> bool QMargins bool 判断两对象是否相等
__or__(m2: QMargins) -> QMargins QMargins QMargins 取两对象各边距的最大值
right() -> int - int 获取右边距值
setBottom(bottom: int) int void 设置下边距值
setLeft(left: int) int void 设置左边距值
setRight(right: int) int void 设置右边距值
setTop(top: int) int void 设置上边距值
toMarginsF() -> QMarginsF - QMarginsF 转换为浮点边距对象
top() -> int - int 获取上边距值

使用注意事项

  1. 运算符重载支持多种类型参数,注意返回类型可能不同(如浮点运算返回QMarginsF)
  2. 原地操作符(如__iadd__)会修改原对象
  3. 比较运算符需比较全部四个边距值
  4. 可通过toMarginsF()转换为浮点精度版本

简单示例

from PySide6.QtCore import QMargins

m1 = QMargins(10, 20, 30, 40)
m2 = QMargins(5, 5, 5, 5)

# 加法运算
result = m1 + m2  # QMargins(15,25,35,45)
print(result)

# 标量乘法
scaled = m1 * 2   # QMargins(20,40,60,80)
print(scaled)

# 类型转换
float_margins = m1.toMarginsF()  # QMarginsF(10.0,20.0,30.0,40.0)
print(float_margins)

运行效果如下:
运行效果


网站公告

今日签到

点亮在社区的每一天
去签到