QML 中的尺寸是与设备无关的像素吗?

问题描述 投票:0回答:1

我使用的是Qt 5.6.2

如果我这样做:

Item {
   width: 20
   height: 20
}

width
height
的值是与设备无关还是精确像素?

qt qml
1个回答
5
投票

通常,它是“与设备相关的像素”。在不使用最大分辨率的情况下,显示器上的确切像素是多少? 也有并非如此的情况。 例如,如果您使用

scale

或依赖高 DPI 缩放,就会出现这种情况。

http://doc.qt.io/qt-5/highdpi.html
使用

real

值而不是

int
值的主要原因之一是,当希望某个大小是另一个大小的一小部分时,它可以减少向上舍入/向下舍入错误的数量。
查看主播评论:

anchors.alignWhenCentered (default true)

强制居中锚点与整个像素对齐;如果居中的项目具有奇数宽度或高度,则该项目将定位在整个像素上而不是放置在半像素上。这确保了该物品被清晰地绘制。在某些情况下这是不可取的;例如,旋转项目时,由于中心是圆形的,锯齿可能会很明显。


获取与设备无关的大小很困难,因为
Screen.devicePixelRatio

与文档中所述完全相同:


屏幕的物理像素与设备无关像素之间的比率。 普通显示屏上的常用值为
1.0,Apple“视网膜”显示屏上的常用值为 2.0。

这个 QML 属性是在 Qt 5.4 中引入的。

所以,他们并不关心你是否拥有 4K 智能手机或 800x600 CRT。

Screen.pixelDensity

可能更有帮助,但我认为它依赖于操作系统/硬件信息。根据我的经验,它经常是正确的,但有时却偏离了。

    

© www.soinside.com 2019 - 2024. All rights reserved.