Qt 坐标体系:逻辑坐标与物理坐标的区别与实践

在 Qt 开发中,逻辑坐标(Logical Coordinates)和物理坐标(Physical Coordinates)是两个至关重要的概念,尤其是在多屏幕、高 DPI 场景下,如何正确使用它们直接影响窗口的显示、绘制精度和用户体验。本文对 Qt 坐标体系中的常见问题进行归纳,并分析其中的核心原理。


1. 逻辑坐标 vs 物理坐标

1.1 逻辑坐标

逻辑坐标是 Qt 默认使用的坐标体系,它与设备的分辨率和 DPI 缩放无关。例如,在 200% DPI 缩放的屏幕上,一个 100×100 的逻辑窗口实际上会占据 200×200 的物理像素,但开发者在代码中仍然使用 100×100 的尺寸。

特点:

  • 默认使用:Qt 窗口的 setGeometry()move() 等方法接受的是逻辑坐标。
  • 自动适配:Qt 根据当前屏幕的 devicePixelRatio(dpr)自动转换为物理坐标。
  • 适用于 UI 组件:大部分 Qt 组件(如 QWidget)默认采用逻辑坐标,Qt 布局管理器会自动适配不同屏幕。

1.2 物理坐标

物理坐标直接映射到屏幕的像素点,单位是 真实像素(即 Windows/Linux/ma

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值