QML中的尺寸设备独立像素?

时间:2017-11-02 18:46:51

标签: qt qml

我正在使用Qt 5.6.2

如果我这样做:

Item {
   width: 20
   height: 20
}

widthheight设备的值是独立的还是精确的像素?

1 个答案:

答案 0 :(得分:4)

通常它是设备相关像素。显示器上没有使用最大分辨率的精确像素是什么?

有些情况下,情况并非如此。 就是这种情况,例如如果您使用scale或您依赖高dpi缩放的位置。 http://doc.qt.io/qt-5/highdpi.html

拥有real值而不是int - 值的主要原因之一是,当将大小绑定为另一个大小的一小部分时,它会减少轮次错误的数量。

见锚点评论:

  

anchors.alignWhenCentered (default true)强制中心锚点与整个像素对齐;如果居中的项目具有奇数宽度或高度,则该项目将定位在整个像素上而不是放置在半像素上。这样可以确保物品涂得清脆。有些情况下这是不可取的,例如当旋转物品时,由于中心是圆形的,因此抖动可能很明显。

获取与设备无关的大小很难,因为Screen.devicePixelRatio完全如文档中所述:

  

屏幕的物理像素与设备无关像素之间的比率。   普通显示器上的常见值为 1.0,Apple"视网膜上的值为#34;显示器   这个QML属性是在Qt 5.4中引入的。

因此,他们不关心您是否拥有4k智能手机或800x600 CRT

Screen.pixelDensity可能更有帮助,但我认为它依赖于操作系统/硬件信息。根据我的经验,它经常是正确的,但有时候是这样的。