这是我的开发环境。
Qt版本:5.9.4
Windows:寡妇10
Linux:Ubuntu 18.04
我有一个要求,将字体大小设置为20.25。 QML font.pixelSize 采用 integer 值,而 font.pointSize 接受 real。所以我决定使用font.pointSize。但是使用 font.pointSize 会表现出一些奇怪的行为。
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtQuick.Window 2.2
Window {
visible: true
width: 800
height: 480
title: qsTr("Hello World")
Column {
spacing: 20
Rectangle {
height: 100
width: 200
Text {
text: "Sample Text with font.pixelSize = 20"
font {
pixelSize: 20
}
}
}
Rectangle {
height: 100
width: 200
Text {
text: "Sample Text with font.pointSize = 20"
font {
pointSize: 20
}
}
}
}
}
使用上面的代码我得到以下输出。
对我来说,根据设置的值,pixelSize 显示正确。但 pointSize 显得很大。
在 Windows 上:
注意:在上面的例子中,我故意将pointSize和pixelSize都设置为20来演示相同值的差异。我的要求是无论如何使用字体大小为20.25。
如果我在这里做错了什么,请告诉我。
通常,您应该使用
pointSize
,因为它支持 DPI,而 pixelSize
则不支持。这确实依赖于 DPI 的正确检测。有时,您可能会发现这在某些设备上是错误的。在这种情况下,您可以通过在命令行上更改 Qt 检测到的 DPI 来覆盖它,例如
<application> -platform windows:dpiawareness=0,1,2
您还可以设置
QT_SCALE_FACTOR
环境变量来为应用程序提供全局比例因子。