Поддерживаемый подмножество HTML
Виджеты текста Qt способны отображать форматированный текст, заданный с помощью подмножества разметки HTML 4. Виджеты, использующие QTextDocument, такие как QLabel и QTextEdit, способны отображать форматированный текст, указанный таким способом.
Использование разметки HTML в виджетах текста
Виджеты автоматически распознают разметку HTML и отображают форматированный текст соответственно. Например, установка свойства text метки со строкой "<b>Hello</b> <i>Qt!</i>" приведет к отображению текста в метке так: Привет Qt!
При использовании разметки HTML для текста Qt следует правилам, определённым в спецификации HTML 4. Это включает в себя значения по умолчанию для форматирования текста, такие как направление потока текста (слева направо), которое можно изменить, применив атрибут dir к блокам текста.
Поддерживаемые теги
В следующей таблице перечислены теги HTML, поддерживаемые движком форматированного текста Qt:
| Тег | Описание | Примечание |
|---|---|---|
a |
Якорная ссылка или ссылка | Поддерживает атрибуты href и name. |
address |
Адрес | |
b |
Жирный шрифт | |
big |
Более крупный шрифт | |
blockquote |
Отступленный абзац | |
body |
Тело документа | Поддерживает атрибут bgcolor, который может быть именем цвета Qt цвет или спецификацией цвета #RRGGBB. |
br |
Перевод строки | |
center |
Абзац по центру | |
cite |
Встроенная цитата | Также как i. |
code |
Код | Также как tt. |
dd |
Данные определения | |
dfn |
Определение | Также как i. |
div |
Раздел документа | Поддерживает стандартные атрибуты блоков. |
dl |
Список определений | Поддерживает стандартные атрибуты блоков. |
dt |
Термин определения | Поддерживает стандартные атрибуты блоков. |
em |
Выделение | Также как i. |
font |
Размер шрифта, семейство и/или цвет | Поддерживает следующие атрибуты: size, face, и color (имена цветов Qt цвет или #RRGGBB). |
h1 |
Заголовок 1 уровня | Поддерживает стандартные атрибуты блоков. |
h2 |
Заголовок 2 уровня | Поддерживает стандартные атрибуты блоков. |
h3 |
Заголовок 3 уровня | Поддерживает стандартные атрибуты блоков. |
h4 |
Заголовок 4 уровня | Поддерживает стандартные атрибуты блоков. |
h5 |
Заголовок 5 уровня | Поддерживает стандартные атрибуты блоков. |
h6 |
Заголовок 6 уровня | Поддерживает стандартные атрибуты блоков. |
head |
Заголовок документа | |
hr |
Горизонтальная линия | Поддерживает атрибут width, который может быть задан как абсолютное или относительное (%) значение. |
html |
Документ HTML | |
i |
Курсив | |
img |
Изображение | Поддерживает атрибуты src, source (для совместимости с Qt 3), width, и height. |
kbd |
Введённый пользователем текст | |
meta |
Метаинформация | Если кодировка текста задана с помощью тега meta, она используется Qt::codecForHtml(). Аналогично, если кодировка задана для QTextDocument::toHtml(), кодировка сохраняется с помощью тега meta, например: <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
|
li |
Элемент списка | |
nobr |
Неразрывный текст | |
ol |
Нумерованный список | Поддерживает стандартные атрибуты списков. |
p |
Абзац | По умолчанию выровнен по левому краю. Поддерживает стандартные атрибуты блоков. |
pre |
Предформатированный текст | |
qt |
Документ Qt форматированного текста | Синоним для html. Предоставлен для совместимости с более ранними версиями Qt. |
s |
Зачеркнутый текст | |
samp |
Пример кода | Также как tt. |
small |
Мелкий шрифт | |
span |
Сгруппированные элементы | |
strong |
Сильный | Также как b. |
sub |
Нижний индекс | |
sup |
Верхний индекс | |
table |
Таблица | Поддерживает следующие атрибуты: border, bgcolor (имена цветов Qt цвет или #RRGGBB), cellspacing, cellpadding, width (абсолютное или относительное), и height. |
tbody |
Тело таблицы | Не выполняет никаких действий. |
td |
Ячейка таблицы | Поддерживает стандартные атрибуты ячеек таблицы. |
tfoot |
Подвал таблицы | Не выполняет никаких действий. |
th |
Ячейка заголовка таблицы | Поддерживает стандартные атрибуты ячеек таблицы. |
thead |
Заголовок таблицы | Если тег thead указан, он используется при печати таблиц, занимающих несколько страниц. |
title |
Заголовок документа | Значение, указанное с помощью тега title, доступно через QTextDocument::metaInformation(). |
tr |
Строка таблицы | Поддерживает атрибут bgcolor, который может быть именем цвета Qt цвет или спецификацией цвета #RRGGBB. |
tt |
Шрифт печатной машинки | |
u |
Подчёркнутый | |
ul |
Маркированный список | Поддерживает стандартные атрибуты списков. |
var |
Переменная | Также как i. |
Атрибуты блоков
Следующие атрибуты поддерживаются тегами div, dl, dt, h1, h2, h3, h4, h5, h6, p.
-
align(left,right,center,justify) -
dir(ltr,rtl)
Атрибуты списков
Следующий атрибут поддерживается тегами ol и ul.
-
type(1,a,A,square,disc,circle)
Атрибуты ячеек таблицы
Следующие атрибуты поддерживаются тегами td и th.
-
width(абсолютное, относительное или без значения) -
bgcolor(имена цветов Qt цветов или#RRGGBB) colspanrowspan-
align(left,right,center,justify) -
valign(top,middle,bottom)
Свойства CSS
В следующей таблице перечислены свойства CSS, поддерживаемые движком форматирования богатого текста Qt:
| Свойство | Значения | Описание |
|---|---|---|
background-color |
<цвет> | Цвет фона для элементов |
background-image |
<ссылка> | Изображение фона для элементов |
color |
<цвет> | Цвет текста переднего плана |
font-family |
<название_шрифта> | Название семейства шрифтов |
font-size |
[ small | medium | large | x-large | xx-large ] | <размер>pt | <размер>px | Размер шрифта относительно размера шрифта документа или заданный в пунктах или пикселях |
font-style |
[ normal | italic | oblique ] | |
font-weight |
[ normal | bold | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 ] | Устанавливает толщину шрифта для текста, где normal и bold сопоставлены соответствующим весам QFont. Числовые значения в 8 раз превышают эквивалентные значения веса QFont. |
text-decoration |
none | [ underline || overline || line-through ] | Дополнительные эффекты текста |
font |
[ [ <'стиль_шрифта'> || <'толщина_шрифта'> ]? <'размер_шрифта'> <'семейство_шрифтов'> ] | Сокращённое свойство шрифта |
text-indent |
<длина>px | Отступ первой строки в пикселях |
white-space |
normal | pre | nowrap | pre-wrap | Определяет, как обрабатываются пробелы в HTML. |
margin-top |
<длина>px | Верхний отступ абзаца в пикселях |
margin-bottom |
<длина>px | Нижний отступ абзаца в пикселях |
margin-left |
<длина>px | Левый отступ абзаца в пикселях |
margin-right |
<длина>px | Правый отступ абзаца в пикселях |
padding-top |
<длина>px | Отступ ячейки таблицы по вертикали в пикселях |
padding-bottom |
<длина>px | Нижний отступ ячейки таблицы в пикселях |
padding-left |
<длина>px | Левый отступ ячейки таблицы в пикселях |
padding-right |
<длина>px | Правый отступ ячейки таблицы в пикселях |
padding |
<длина>px | Сокращение для одновременной установки всех свойств отступа. |
vertical-align |
baseline | sub | super | middle | top | bottom | Вертикальное выравнивание текста. Для вертикального выравнивания в ячейках таблицы текста применяются только middle, top и bottom. |
border-collapse |
collapse | separate | Режим слияния границ для текстовых таблиц. Если установлено collapse, интервал между ячейками не будет применён. |
border-color |
<цвет> | Цвет границы для текстовых таблиц и ячеек таблицы. |
border-top-color |
<цвет> | Цвет верхней границы для ячеек таблицы. |
border-bottom-color |
<цвет> | Цвет нижней границы для ячеек таблицы. |
border-left-color |
<цвет> | Цвет левой границы для ячеек таблицы. |
border-right-color |
<цвет> | Цвет правой границы для ячеек таблицы. |
border-style |
none | dotted | dashed | dot-dash | dot-dot-dash | solid | double | groove | ridge | inset | outset | Стиль границы для текстовых таблиц и ячеек таблицы. |
border-top-style |
<стиль_границы> | Стиль верхней границы для ячеек таблицы. |
border-bottom-style |
<стиль_границы> | Стиль нижней границы для ячеек таблицы. |
border-left-style |
<стиль_границы> | Стиль левой границы для ячеек таблицы. |
border-right-style |
<стиль_границы> | Стиль правой границы для ячеек таблицы. |
border-width |
<ширина>px | Ширина границы таблицы или ячейки |
border-top-width |
<длина>px | Ширина верхней границы для ячеек таблицы. |
border-bottom-width |
<длина>px | Ширина нижней границы для ячеек таблицы. |
border-left-width |
<длина>px | Ширина левой границы для ячеек таблицы. |
border-right-width |
<длина>px | Ширина правой границы для ячеек таблицы. |
border-top |
<ширина>px <стиль_границы> <цвет_границы> | Сокращение для установки ширины, стиля и цвета верхней границы. |
border-bottom |
<ширина>px <стиль_границы> <цвет_границы> | Сокращение для установки ширины, стиля и цвета нижней границы. |
border-left |
<ширина>px <стиль_границы> <цвет_границы> | Сокращение для установки ширины, стиля и цвета левой границы. |
border-right |
<ширина>px <стиль_границы> <цвет_границы> | Сокращение для установки ширины, стиля и цвета правой границы. |
border-top |
<ширина>px <стиль_границы> <цвет_границы> | Сокращение для установки ширины, стиля и цвета верхней границы. |
border-bottom |
<ширина>px <стиль_границы> <цвет_границы> | Сокращение для установки ширины, стиля и цвета нижней границы. |
border |
<ширина>px <стиль_границы> <цвет_границы> | Сокращение для установки ширины, стиля и цвета всех четырёх границ. |
background |
[ <'цвет_фона'> || <'изображение_фона'> ] | Сокращённое свойство фона |
page-break-before |
[ auto | always ] | Разрешить принудительное введение разрыва страницы перед абзацем/таблицей |
page-break-after |
[ auto | always ] | Разрешить принудительное введение разрыва страницы после абзаца/таблицы |
float |
[ left | right | none ] | Указывает, где изображение или текст будут размещены в другом элементе. Обратите внимание, что свойство float поддерживается только для таблиц и изображений. |
text-transform |
[ uppercase | lowercase ] | Выберите преобразование, которое будет выполнено над текстом перед его отображением. |
font-kerning |
[ normal | none ] | Включает или выключает кернинг между символами текста. |
font-variant |
small-caps | Выполняет преобразование smallcaps над текстом перед его отображением. |
word-spacing |
<ширина>px | Устанавливает дополнительный интервал между словами. |
line-height |
<число>[% | px | pt | cm] | Задает высоту строки. Она может быть следующей:
|
Свойства CSS, специфичные для Qt
Помимо стандартных свойств CSS, перечисленных выше, также можно использовать следующие свойства, специфичные для Qt, для форматирования блока текста:
| Свойство | Значения | Описание |
|---|---|---|
-qt-block-indent |
<number> |
Отступает блок текста на указанное число пробелов. |
-qt-list-indent |
<number> |
Отступает пункты списка на указанное число пробелов. |
-qt-list-number-prefix |
<string> |
Префикс указанной строки для номера в упорядоченном списке HTML. |
-qt-list-number-suffix |
<строка> | Суффикс заданной строки для номера в упорядоченном списке HTML. |
-qt-paragraph-type |
empty |
Скрывает блок текста. |
-qt-table-type |
root | frame |
root отображает блоки текста как встроенные без границ и отступов, в то время как frame отображает их на новой строке с рамкой вокруг. |
-qt-user-state |
<number> |
Добавляет его как пользовательские данные для блока текста. |
Поддерживаемые селекторы CSS
Поддерживаются все классы селекторов CSS 2.1, за исключением псевдоклассов, таких как :first-child, :visited и :hover.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/richtext-html-subset.html