当前位置: 首页 > news >正文

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

文章目录

  • 类简介
  • 方法总览
  • 关键说明
  • 示例代码

类简介

QMarginsF 用于定义四个浮点型边距(左、上、右、下),描述围绕矩形的边框尺寸。所有边距接近零时 isNull() 返回 True,支持运算符重载和数学运算。


方法总览

方法名/运算符参数返回类型描述
构造函数
__init__()-None构造所有边距为0的QMarginsF对象
__init__(QMarginsF margins)margins: 其他QMarginsF对象None复制构造
__init__(left, top, right, bottom)left, top, right, bottom: 浮点数(必须为有限值)None指定左、上、右、下边距构造
成员方法
bottom()-float返回底部边距
left()-float返回左侧边距
right()-float返回右侧边距
top()-float返回顶部边距
isNull()-bool所有边距接近0时返回True(使用模糊比较)
setBottom(abottom)abottom: 浮点数(必须为有限值)None设置底部边距
setLeft(aleft)aleft: 浮点数(必须为有限值)None设置左侧边距
setRight(aright)aright: 浮点数(必须为有限值)None设置右侧边距
setTop(atop)atop: 浮点数(必须为有限值)None设置顶部边距
toMargins()-QMargins返回整数边距对象(四舍五入)
运算符重载
+ (__add__)QMarginsFfloatQMarginsF边距相加(分量分别相加)
- (__sub__)QMarginsFfloatQMarginsF边距相减(分量分别相减)
* (__mul__)floatQMarginsF边距各分量乘以标量
/ (__div__)float(除数不能为0或NaN)QMarginsF边距各分量除以标量
+= (__iadd__)QMarginsFfloatQMarginsF自身边距增加(分量分别相加)
-= (__isub__)QMarginsFfloatQMarginsF自身边距减少(分量分别相减)
*= (__imul__)floatQMarginsF自身边距各分量乘以标量
/= (__idiv__)float(除数不能为0或NaN)QMarginsF自身边距各分量除以标量
== (__eq__)QMarginsFbool模糊比较是否相等(非严格相等)
!= (__ne__)QMarginsFbool模糊比较是否不等
| (__or__)QMarginsFQMarginsF取各分量的最大值(如m1 | m2返回各边最大值的新对象)
特殊操作
单目- (__neg__)-QMarginsF返回各分量取反后的新对象

关键说明

  1. 模糊比较:==!= 使用 qFuzzyCompare 进行浮点数近似比较,非精确相等。
  2. 有限值限制:所有构造函数和设置方法要求参数为有限值(非无穷或NaN)。
  3. 运算符优先级:运算符重载遵循Python标准优先级规则。
  4. 隐式转换:toMargins() 将浮点边距四舍五入为整数,生成 QMargins 对象。

示例代码

from PySide6.QtCore import QMarginsFm1 = QMarginsF(10.5, 20.0, 30.5, 40.0)
m2 = QMarginsF(5.0, 5.0, 5.0, 5.0)# 边距相加
m_sum = m1 + m2  # QMarginsF(15.5, 25.0, 35.5, 45.0)
print(m_sum)# 标量乘法
m_scaled = m1 * 2  # QMarginsF(21.0, 40.0, 61.0, 80.0)
print(m_scaled)# 比较操作
print(m1 == m2)  # False(使用模糊比较)

代码运行效果如下:


代码运行效果

相关文章:

  • RT-Thread 深入系列 Part 4:组件包管理与软件框架
  • Java动态代理超详细解析:三步+内存图(堆栈分析)
  • Linux进程间信号
  • ts装饰器
  • 从杰夫・托尔纳看 BPLG 公司的技术创新与发展
  • LeetCode 39 LeetCode 40 组合总和问题详解:回溯算法与剪枝优化(Java实现)
  • Python爬虫实战:获取woodo网各类免费图片,积累设计素材
  • [题解]2023CCPC黑龙江省赛 - Folder
  • 服务预热原理
  • 批量统计PDF页数,统计图像属性
  • 求数组中的两数之和--暴力/哈希表
  • Java 23种设计模式 - 行为型模式11种
  • JAVA——抽象类和接口的区别
  • A2A大模型协议及Java示例
  • jdk多版本切换,通过 maven 指定编译jdk版本不生效,解决思路
  • 使用lldb查看Rust不同类型的结构
  • cv_connection (像halcon一样对区域进行打散)
  • Markdown—LaTeX 数学公式
  • PCB设计实践(十二)PCB设计电容选型:功能、材质、规则
  • 数据结构与算法分析实验12 实现二叉查找树
  • 中国社科院:网文市场超430亿元,作者破3000万人
  • 昆明一学校门外小吃摊占满人行道,城管:会在重点时段加强巡查处置
  • 4月金融数据前瞻:受去年低基数因素影响,社融增量有望同比大幅多增
  • 王受文已任全国工商联党组成员
  • 治沙“异瞳”男生疑似摆拍,团队称合作12天多期视频为策划拍摄
  • 华为鸿蒙电脑正式亮相,应用生态系统能否挑战Windows?