单个 QML Text 元素中的多种字体大小

Multiple font sizes in a single QML Text element

我一直在尝试让 Text 元素通过一些富文本格式来显示不同大小的文本:

  Text {
    font.pointSize: 30
    text: 'T' +
          '<font size="40px">T</font>' +
          '<font size="10px">T</font>' +
          '<font size="5px">T</font>' +
          '<font size="40pt">T</font>' +
          '<font size="10pt">T</font>' +
          '<font size="5pt">T</font>' +
          '<font size="1">T</font>' +
          '<font size="2">T</font>' +
          '<font size="3">T</font>' +
          '<font size="4">T</font>' +
          '<font size="5">T</font>' +
          '<font size="6">T</font>' +
          '<font size="-1">T</font>' +
          '<font size="-2">T</font>' +
          '<font size="-3">T</font>' +
          '<font size="-4">T</font>' +
          '<font size="-5">T</font>' +
          '<font size="-6">T</font>' +
          '<font size="20%">T</font>' +
          '<font size="60%">T</font>' +
          '<font size="130%">T</font>'
  }

不幸的是,正如最终结果所表明的那样,似乎只有尺寸 1 到 7 和 -1 到 -2 按预期工作,其他一切都为零。

我特别想要的是比设置值 30pts 小得多的文本,大约 10 点左右是理想的,但是我无法使用任何有效的选项来降低它。

编辑:我能够通过更改基本大小并为 "normal" 使用大小 7 和为小文本使用大小 -2 来获得所需的大小差异,但是尽管如此,我还是会把问题留在如果有人有一个通用的解决方案来获得任意大小。

您尝试使用 Text.RichText 样式的文本,因此需要这样做:

Text {
    textFormat: Text.RichText
    text: " <html>
                <div style='font-size: 5px;'>T</div>
                <div style='font-size: 10px;'>T</div>
                <div style='font-size: 20px;'>T</div>
                <div style='font-size: 30px;'>T</div>
            </html>"
}

我认为您的 HTML 文本应被检测为 Text.StyledText,即 HTML 3.2 的样式。它支持有限的 font-size 属性 of HTML 标签:

<font color="color_name" size="1-7"></font>

Text.RichText supports a larger subset of HTML 4, as described on the Supported HTML Subset page.

HTML4 支持下面的CSS属性:

font-size [ small | medium | large | x-large | xx-large ] | pt | px