qt - QML 中的文本跨平台呈现不同

标签 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"
  }
}

任何想法是什么原因造成的?它是相同的字体,相同的代码。平台上的顶部填充和行高值是相同的。

最佳答案

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

在此之前,以下解决方法至少在涉及垂直位置时应该可以解决问题:

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

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

更新:
事实证明,这里的异常(exception)是 windows,因为 android 和 ubuntu 的输出实际上是相同的(是的,无论如何,两者本质上都是 linux)。我没有Mac,所以我无法对此提供任何意见。

enter image description here

关于qt - QML 中的文本跨平台呈现不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39552072/

相关文章:

c++ - 如何通过 Qt 5.6 将 QML 应用程序窗口设置为透明?

c++ - 如何用Qt显示图像

c++ - 有没有一个看起来像标签的Qt小部件来显示文本,但如果双击也可以编辑?

css - 服务器传输不工作

qt - 设置矩形的旋转点

c++ - 在 qquickwidget openstreetmap 中添加/删除标记

qt - 在 QT Creator 中使用自定义构造函数提升自定义小部件

text - 如何确定文本文件的编码表

css - 划掉文本 CSS

c++ - Qt5 QtQuick 2.0(Qt Quick Application) 在一个窗口中切换 View (qml文件)