Qt QML文本:如何使用CSS属性,例如文本装饰:上划线

Qt QML文本:如何使用CSS属性,例如文本装饰:上划线,qt,text,qml,label,richtext,Qt,Text,Qml,Label,Richtext,是否可以在QML文本或QML标签元素中使用CSS属性?我对文本装饰:上划线感兴趣,我想将上划线字符与普通字符混合使用。我知道我可以为每个字符放置单独的文本元素,并使用font.overline:true,但这是不切实际的解决方案 因此,如何写出“*AB*c*d”,使a、c和d都被覆盖,而不是以星号作为前缀 顺便说一下,下划线很简单,只需使用和,但这对我没有帮助。你是说文本中的CSS内联吗?那么是的。如果您的意思是将CSS应用于QML元素(就像它们是HTML一样),那么就没有了(我觉得很讽刺:)

是否可以在QML文本或QML标签元素中使用CSS属性?我对
文本装饰:上划线
感兴趣,我想将上划线字符与普通字符混合使用。我知道我可以为每个字符放置单独的文本元素,并使用
font.overline:true
,但这是不切实际的解决方案

因此,如何写出“*AB*c*d”,使a、c和d都被覆盖,而不是以星号作为前缀


顺便说一下,下划线很简单,只需使用
,但这对我没有帮助。

你是说文本中的CSS内联吗?那么是的。如果您的意思是将CSS应用于QML元素(就像它们是HTML一样),那么就没有了(我觉得很讽刺:)

根据Qt改编的示例:

导入QtQuick 2.3
窗格玻璃{
id:根
宽度:480
身高:320
长方形{
锚固件。填充:父级;
颜色:“272822”
}
纵队{
间距:20
正文{
锚固件。填充:父级;
课文:“我就是你的榜样”+
“现代人”+
“少将!”
font.pointSize:14
Text格式:Text.RichText
}
}
}
我特别需要设置
textFormat:Text.RichText
,使用
Text.StyledText
上划线不起作用


你是说文本中的CSS内联吗?那么是的。如果您的意思是将CSS应用于QML元素(就像它们是HTML一样),那么就没有了(我觉得很讽刺:)

根据Qt改编的示例:

导入QtQuick 2.3
窗格玻璃{
id:根
宽度:480
身高:320
长方形{
锚固件。填充:父级;
颜色:“272822”
}
纵队{
间距:20
正文{
锚固件。填充:父级;
课文:“我就是你的榜样”+
“现代人”+
“少将!”
font.pointSize:14
Text格式:Text.RichText
}
}
}
我特别需要设置
textFormat:Text.RichText
,使用
Text.StyledText
上划线不起作用


除了与HTML元素的
style=“…”
属性内联使用CSS之外,在QML文本对象中也可以使用CSS类。然后看起来是这样的:

import QtQuick 2.3
Pane  {
    id: root
    width: 480
    height: 320
    Rectangle {
        anchors.fill: parent;
        color: "#272822"
    }
    Column {
        spacing: 20
        Text {
            anchors.fill: parent;
            text: '
                <html>
                    <head><style>
                        p.white   { color: white; }
                        .overline { text-decoration: overline; }
                    </style></head>
                    <body>
                        <p class="white">I am the very model of a 
                            <span class="overline">modern</span> major general!
                        </p>
                    </body>
                </html>
            '
            font.pointSize: 14
            textFormat: Text.RichText
        }
  }
}
导入QtQuick 2.3
窗格玻璃{
id:根
宽度:480
身高:320
长方形{
锚固件。填充:父级;
颜色:“272822”
}
纵队{
间距:20
正文{
锚固件。填充:父级;
正文:'
p、 白色{颜色:白色;}
.overline{文本装饰:overline;}

我是一个典型的 现代少将!

' font.pointSize:14 Text格式:Text.RichText } } }

使用Qt5.12测试。

除了使用与HTML元素的
style=“…”
属性内联的CSS外,还可以在QML文本对象中使用CSS类。然后看起来是这样的:

import QtQuick 2.3
Pane  {
    id: root
    width: 480
    height: 320
    Rectangle {
        anchors.fill: parent;
        color: "#272822"
    }
    Column {
        spacing: 20
        Text {
            anchors.fill: parent;
            text: '
                <html>
                    <head><style>
                        p.white   { color: white; }
                        .overline { text-decoration: overline; }
                    </style></head>
                    <body>
                        <p class="white">I am the very model of a 
                            <span class="overline">modern</span> major general!
                        </p>
                    </body>
                </html>
            '
            font.pointSize: 14
            textFormat: Text.RichText
        }
  }
}
导入QtQuick 2.3
窗格玻璃{
id:根
宽度:480
身高:320
长方形{
锚固件。填充:父级;
颜色:“272822”
}
纵队{
间距:20
正文{
锚固件。填充:父级;
正文:'
p、 白色{颜色:白色;}
.overline{文本装饰:overline;}

我是一个典型的 现代少将!

' font.pointSize:14 Text格式:Text.RichText } } }

使用Qt 5.12进行测试。

这很有效。大部分。在Sailfish操作系统上,如果将其与font.capitalize:font.SmallCapsThanks结合使用,我注意到了一些bug。对于
RichText
note,这很有效。大部分。在Sailfish操作系统上,如果将其与font.capitalize:font.SmallCapsThanks结合使用,我注意到了一些错误