Могу ли я использовать пользовательские теги в QTextDocument Qt?

Я знаю, что Qt QTextDocument и тип Qt QML Text поддерживают набор поддерживаемые теги и поддерживаемые свойства CSS, образующие подмножество HTML 4.

Но есть ли способ расширить список тегов, которые я могу использовать? Например, когда я хочу отобразить пользовательский XML без предварительного преобразования его в HTML (через XSL-T Qt или другим способом). Или аналогичным образом, когда я хотел бы визуально реализовать элемент, еще не поддерживаемый подмножеством Qt HTML 4.


person tanius    schedule 01.07.2020    source источник


Ответы (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, совместимыми со спецификацией пользовательских элементов (подробности) .

person tanius    schedule 01.07.2020