我使用的是Qt 5.6.2
如果我这样做:
Item {
width: 20
height: 20
}
width
和 height
的值是与设备无关还是精确像素?
通常,它是“与设备相关的像素”。在不使用最大分辨率的情况下,显示器上的确切像素是多少? 也有并非如此的情况。 例如,如果您使用
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
可能更有帮助,但我认为它依赖于操作系统/硬件信息。根据我的经验,它经常是正确的,但有时却偏离了。