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

网站建设的前期投入社交平台推广方式

网站建设的前期投入,社交平台推广方式,登录建设银行网站打不开,南阳住房和城乡建设厅网站文章目录 类描述构造方法主要方法1. 基础属性2. 边界操作3. 几何运算4. 坐标调整5. 转换方法6. 状态判断 类特点总结1. 浮点精度:2. 坐标系统:3. 有效性判断:4. 几何运算:5. 类型转换:6. 特殊处理: 典型应用…

文章目录

  • 类描述
  • 构造方法
  • 主要方法
    • 1. 基础属性
    • 2. 边界操作
    • 3. 几何运算
    • 4. 坐标调整
    • 5. 转换方法
    • 6. 状态判断
  • 类特点总结
    • 1. 浮点精度:
    • 2. 坐标系统:
    • 3. 有效性判断:
    • 4. 几何运算:
    • 5. 类型转换:
    • 6. 特殊处理:
  • 典型应用场景
    • 1. 图形碰撞检测:
    • 2. 动态布局调整:
    • 3. 高精度绘图:
    • 4. 动画路径计算:
  • 注意事项
    • 1. 坐标系差异:
    • 2. 精度转换:
    • 3. 性能优化:
    • 4. 异常处理:
    • 5. 边界情况:
  • 附:与QRect核心区别

类描述

QRectF类使用浮点精度定义平面上的矩形,继承自Shiboken.Object。用于图形界面开发中高精度矩形区域操作。
QRectF

构造方法

# 通过坐标构造
rect1 = QRectF(100.0, 200.0, 50.5, 30.2)    # QRectF(float x, float y, float w, float h)
print(rect1)    # QRectF(100.0,200.0,50.5,30.2)
# 通过QPointF和QSizeF构造
top_left = QPointF(100.0, 200.0)
size = QSizeF(50.5, 30.2)
rect2 = QRectF(top_left, size)  # QRectF(QPointF topLeft, QSizeF size)
print(rect2)    # QRectF(100.0,200.0,50.5,30.2)# 从QRect转换
qrect = QRect(100, 200, 50, 30)
rect3 = QRectF(qrect)   # QRectF(QRect rect)
print(rect3)    # QRectF(100.0,200.0,50.0,30.0)

主要方法

1. 基础属性

print(rect1.x())        # 左边缘x坐标 (100.0)
print(rect1.y())        # 上边缘y坐标 (200.0)
print(rect1.width())    # 宽度 (50.5)
print(rect1.height())   # 高度 (30.2)
print(rect1.center())   # 中心点 QPointF(125.25, 215.1)

2. 边界操作

rect = QRectF(100, 200, 50, 30)
rect.setLeft(110)       # 调整左边界,宽度变为40.0
print(rect)             # QRectF(110.0, 200.0, 40.0, 30.0)
rect.moveBottom(250)    # 保持高度,移动到底部到y=250
print(rect)             # QRectF(110.0, 220.0, 40.0, 30.0)
print(rect.bottomRight()) # 右下角 QPointF(150.0, 250.0)  

3. 几何运算

rectA = QRectF(0, 0, 100, 100)
rectB = QRectF(50, 50, 100, 100)# 交集
intersection = rectA.intersected(rectB)  # QRectF(50,50,50,50)
print(intersection)      # 并集
united = rectA.united(rectB)            # QRectF(0,0,150,150)
print(united)          # 包含检测
print(rectA.contains(QPointF(30, 30)))  # True
print(rectA.intersects(rectB))          # True

4. 坐标调整

rect = QRectF(100, 200, 50.5, 30.2)
# 相对调整
new_rect = rect.adjusted(10, 5, -20, -10)
# 原rect (100,200,50.5,30.2)
# 新矩形 (110,205,20.5,15.2)
print(new_rect)      # QRectF(110.0,205.0,20.5,15.2)# 绝对设置
rect.setCoords(110, 205, 130.5, 220.2)
print(rect)          # QRectF(110.0,205.0,20.5,15.2)

5. 转换方法

# 转为整数矩形QRect
int_rect = rect.toRect()  # 四舍五入坐标# 转置宽高
transposed = rect.transposed()  # 宽高交换

6. 状态判断

print(QRectF().isNull())   # True(宽高均为0)
print(QRectF(0,0,0,10).isEmpty())  # True(宽或高为0)
print(QRectF(0,0,10,10).isValid())  # True

类特点总结

1. 浮点精度:

• 使用float类型存储坐标,适合需要高精度定位的场景

• 可精确表示小数位置和尺寸(如50.5像素)

2. 坐标系统:

• 使用Top-Left坐标系(左上角为原点)

• 边界方法包含数学边界(right()和bottom()返回实际坐标+宽高)

3. 有效性判断:

isValid():宽高均>0时为True

isEmpty():宽或高≤0时为True

isNull():宽高均为0时为True

4. 几何运算:

• 支持交集(intersected)、并集(united)、包含检测

• 提供adjusted()进行相对调整和setRect()绝对设置

5. 类型转换:

• 与QRect可互转(toRect()会四舍五入)

• 与QPointF/QSizeF无缝协作

6. 特殊处理:

• normalized()自动处理负宽高情况

• transposed()交换宽高

• 支持margin操作(marginsAdded/Removed)

典型应用场景

1. 图形碰撞检测:

def check_collision(obj1, obj2):return obj1.geometry().intersects(obj2.geometry())

2. 动态布局调整:

def resize_handler(new_size):global rectrect.setSize(QSizeF(new_size.width()*0.8, new_size.height()-20))update()

3. 高精度绘图:

painter.drawEllipse(QRectF(100.5, 200.3, 50.7, 50.7))  # 平滑圆形绘制

4. 动画路径计算:

def animate(pos):current_rect = QRectF(pos.x(), pos.y(), 50, 50)return current_rect.translated(2.5, 1.8)  # 平滑移动

注意事项

1. 坐标系差异:

• 数学坐标系:右下边界包含计算值(right=x+width)

• 渲染时:抗锯齿处理会使实际绘制范围略大于数学范围

2. 精度转换:

• 转QRect时使用四舍五入,可能丢失精度

• 关键计算建议保持QRectF类型直到最终渲染

3. 性能优化:

• 频繁计算时建议使用adjust()代替adjusted()

• 批量操作时优先使用setCoords/setRect

4. 异常处理:

• 所有参数必须为有限数值(非NaN/Inf)

• 无效矩形无法进行几何运算

5. 边界情况:

# 处理负尺寸
rect = QRectF(100, 100, -50, -30)
valid_rect = rect.normalized()  # (50, 70, 50, 30)

附:与QRect核心区别

特性QRectQRectF
存储类型整数(int)浮点数(float)
精度像素级对齐亚像素级精度
构造开销较低略高
适用场景UI元素定位图形绘制/动画/复杂计算
转换方式直接截断四舍五入
无效值处理(0,0,0,0)允许负宽高(需normalized)
http://www.dtcms.com/a/526003.html

相关文章:

  • 金坛网站建设哪家好兰溪建设局网站
  • 广州番禺做网站网站要怎么做才专业
  • 中山制作企业网站centos7.2做网站
  • 通过 Grafana 使用 PromQL 查询分析观测云数据最佳实践
  • 镇江大港南站电商推广合同
  • 福田欧曼服务站小网站推荐
  • 建设单位适合去哪个网站看资料企业展厅建议做什么
  • 制造业销采协同难?销采一体化CRM打通订单与供应链全链路
  • 【Linux】Linux进程概念(三)(进程状态,僵尸进程,孤儿进程,进程优先级)
  • 【NestJS】Reflect Metadata 全解
  • 如何做搜索引擎网站淄博 做网站
  • 网站开发怎么开发公司简介宣传文案
  • 在REBa2Cu3O7−δ块状超导磁体优异性能的可靠外延生长中,缓冲层辅助生长架构的进展 项目文献
  • 小米商城的网站建站淄博外贸网站哪家好
  • Jetson orin agx配置ultralytics 使用docker或conda
  • 营子区住房和城乡建设局网站做东南亚跨境电商平台有哪些
  • lesson76:Vue.js 核心特性详解:事件处理、计算属性与侦听器
  • 不申请域名可以 做网站吗短期职业技能培训班
  • 北京专业网站开发公司wordpress+没有+sql
  • 如何做关于旅游的网站页面怎么查询个人名下营业执照
  • 兴国做网站招聘网站建设推广
  • 下载男女做爰免费网站租一个服务器要多少钱
  • 又在今年1024时
  • wordpress 最简单模板下载wordpress seo怎么写
  • wdcp 快速迁移网站佛山电商网站制作团队
  • CI/CD(二)—— Git 基础操作全攻略:从入门到实战
  • 建设一个网站需要那些技术做网站的职位
  • OK432(AbMole,M9414)
  • 三种 Badcase 精度验证方案详解与 hbm_infer 部署实录
  • 全网门户网站制做互联网行业现状分析