QML中的文本在不同平台上呈现不同

时间:2016-09-17 21:51:03

标签: qt text qml cross-platform rendering

我发现不同平台之间的文本呈现不一致:

enter image description here

左上方的图像是在android中生成的,正如红色指示线所示,它与“参考”窗口输出的垂直位置和斜体样式的角度不同。

Rectangle {
  width: 100
  height: 50
  color: "grey"
  Text {
    x: 4
    y: 2
    font.family: sysfont
    font.pixelSize: 13
    width: contentWidth
    color: bgc
    text: "Type"
  }
  Text {
    x: 5
    y: 13
    font.family: sysfont
    font.pixelSize: 32
    font.italic: true
    font.letterSpacing: -1
    width: contentWidth
    color: topc
    style: Text.Sunken
    styleColor: bgc
    text: "Name"
  }
}

任何想法是什么导致的?它是相同的字体,相同的代码。顶部填充和行高度值在整个平台上是相同的。

1 个答案:

答案 0 :(得分:3)

It turns out that it is a bug。所以它可能会在未来几年的某个时候得到修复......

在此之前,至少在垂直位置时,以下解决方法应该做到这一点:

  property real offset: {
    switch (Qt.platform.os) {
    case "android": return androidValue
    case "windows": return windowsValue
    // and so on...
    }
  }

我会调查相同平台的不同版本之间是否存在差异,并在必要时更新答案。

更新: 可能会发现这里的异常是windows,因为android和ubuntu的输出实际上是相同的(是的,无论如何都是linux)。我没有mac,所以我无法提供任何意见。

enter image description here