我可以在Qt的QTextDocument中使用自定义标签吗?

问题描述 投票:0回答:1

我知道 Qt QTextDocument 和 Qt QML Text 类型支持一组支持的标签支持的 CSS 属性,形成 HTML 4 的子集。

但是有什么方法可以扩展我可以使用的标签吗?例如,当我想要渲染自定义 XML 而不首先将其转换为 HTML(通过 Qt 的 XSL-T 或其他方式)时。或者类似地,当我想要直观地实现 Qt 的 HTML 4 子集尚不支持的元素时。

qt qml qtextdocument
1个回答
1
投票

确实可以,尽管这是未记录的行为,并且您应该意识到风险(例如,这种行为可能会在 Qt 的未来版本中消失)。基本上,您可以使用任何您想要的标签名称,并使用可用的 CSS 属性对其进行样式设置。我用 Qt 5.12 测试了这个。

使用文档进行演示,您可以在 QML Text 中尝试(也可以扩展为 QTextDocument,尽管我没有明确测试):

<html>
    <head>
        <style>test-tag { font-weight: bold; }</style>
    </head>
    <body>
        <test-tag>Hello Test Tag!</test-tag>
    </body>
</html>

非常酷 🙂

如果您使用包含破折号字符 (

-
) 的标签名称,则您的自定义标签在 HTML5 中有效,因为这使它们符合自定义元素规范 (详细信息)。

© www.soinside.com 2019 - 2024. All rights reserved.