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

时间:2018-03-21 01:13:57

标签: qt fonts formatting qml richtext

我一直试图让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的大小按预期工作,其他一切都没有效果。 enter image description here

我特别想要的是明显小于设定值30pts的文本,大约10左右是理想的,但是我不能使用任何有效的选项来达到这个低点。

编辑:我能够通过更改基本尺寸获得所需的尺寸差异,并使用尺寸7进行&#34;正常&#34;小文本的大小为-2,但是,如果某人有一个通用的解决方案来获取任意大小,我会留下这个问题。

1 个答案:

答案 0 :(得分:5)

您尝试使用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的风格。它支持HTML标记的有限font-size属性:

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

Text.RichText支持更大的HTML 4子集,如上所述   支持的HTML子集页面。

HTML 4支持下面的CSS属性:

  

<强>字体大小   [小|中|大| x-large | xx-large] | pt | px