Класс QTextBlockFormat
Класс QTextBlockFormat предоставляет информацию о форматировании блоков текста в QTextDocument. Подробнее...
| Заголовок: | #include <QTextBlockFormat> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Наследует: | QTextFormat |
Примечание: Все функции в этом классе являются перевходными.
Типы публичного доступа
| Перечисление | LineHeightTypes { SingleHeight, ProportionalHeight, FixedHeight, MinimumHeight, LineDistanceHeight } |
| Перечисление | MarkerType { NoMarker, Unchecked, Checked } |
Функции публичного доступа
| QTextBlockFormat() | |
| Qt::Alignment | alignment() const |
| qreal | bottomMargin() const |
| int | headingLevel() const |
| int | indent() const |
| bool | isValid() const |
| qreal | leftMargin() const |
| qreal | lineHeight(qreal scriptLineHeight, qreal scaling = 1.0) const |
| qreal | lineHeight() const |
| int | lineHeightType() const |
| QTextBlockFormat::MarkerType | marker() const |
| bool | nonBreakableLines() const |
| QTextFormat::PageBreakFlags | pageBreakPolicy() const |
| qreal | rightMargin() const |
| void | setAlignment(Qt::Alignment alignment) |
| void | setBottomMargin(qreal margin) |
| void | setHeadingLevel(int level) |
| void | setIndent(int indentation) |
| void | setLeftMargin(qreal margin) |
| void | setLineHeight(qreal height, int heightType) |
| void | setMarker(QTextBlockFormat::MarkerType marker) |
| void | setNonBreakableLines(bool b) |
| void | setPageBreakPolicy(QTextFormat::PageBreakFlags policy) |
| void | setRightMargin(qreal margin) |
| void | setTabPositions(const QList<QTextOption::Tab> &tabs) |
| void | setTextIndent(qreal indent) |
| void | setTopMargin(qreal margin) |
| QList<QTextOption::Tab> | tabPositions() const |
| qreal | textIndent() const |
| qreal | topMargin() const |
Подробное описание
Документ состоит из списка блоков, представленных объектами QTextBlock. Каждый блок может содержать элемент определённого типа, такой как абзац текста, таблица, список или изображение. Каждый блок имеет связанное с ним QTextBlockFormat, которое определяет его характеристики.
Для поддержки языков с письмом слева направо и справа налево можно установить направление блока с помощью setDirection(). Выравнивание абзаца устанавливается с помощью setAlignment(). Поля управляются setTopMargin(), setBottomMargin(), setLeftMargin(), setRightMargin(). Общая отступ устанавливается с помощью setIndent(), отступ первой строки - с помощью setTextIndent().
Интерлиньяж устанавливается с помощью setLineHeight() и извлекается с помощью lineHeight() и lineHeightType(). Доступные типы интерлиньяжа находятся в перечислении LineHeightTypes.
Разбиение строк можно включить и выключить с помощью setNonBreakableLines().
Кисть, используемая для покраски фона абзаца, устанавливается с помощью setBackground(), а другие аспекты внешнего вида текста можно настроить, используя функцию setProperty() со значениями OutlinePen, ForegroundBrush, и BackgroundBrush из перечисления QTextFormat::Property.
Если текстовый блок является частью списка, у него также может быть формат списка, который доступен с помощью функции listFormat().
См. также QTextBlock и QTextCharFormat.
Документация по типам членов
перечисление QTextBlockFormat::LineHeightTypes
Это перечисление описывает различные типы интерлиньяжа, которые могут поддерживаться абзацами.
| Константа | Значение | Описание |
|---|---|---|
QTextBlockFormat::SingleHeight |
0 |
Это стандартный интерлиньяж: одинарный. |
QTextBlockFormat::ProportionalHeight |
1 |
Это устанавливает интерлиньяж пропорционально строке (в процентах). Например, установленное значение 200 соответствует двойному интерлиньяжу. |
QTextBlockFormat::FixedHeight |
2 |
Это устанавливает интерлиньяж на фиксированное значение (в пикселях). |
QTextBlockFormat::MinimumHeight |
3 |
Это устанавливает минимальный интерлиньяж (в пикселях). |
QTextBlockFormat::LineDistanceHeight |
4 |
Это добавляет указанную высоту между строками (в пикселях). |
См. также lineHeight(), lineHeightType(), и setLineHeight().
[since 5.14] перечисление QTextBlockFormat::MarkerType
Этот перечисление описывает типы маркеров, которые может иметь элемент списка. Если элемент списка (абзац, для которого QTextBlock::textList() возвращает список) имеет маркер, он отображается вместо обычной пули. Таким образом, элементы списка с возможностью выбора могут быть смешаны с обычными элементами списка в том же списке, перезаписывая тип пули, указанный в QTextListFormat::style() для всего списка.
| Константа | Значение | Описание |
|---|---|---|
QTextBlockFormat::MarkerType::NoMarker |
0 |
Это значение по умолчанию: отображается пуля элемента списка. |
QTextBlockFormat::MarkerType::Unchecked |
1 |
Вместо пули элемента списка отображается неотмеченная галочка. |
QTextBlockFormat::MarkerType::Checked |
2 |
Вместо пули элемента списка отображается отмеченная галочка. |
В будущем это может быть расширено для указания других типов декораций абзаца.
Это перечисление было введено или изменено в Qt 5.14.
См. также QTextListFormat::style().
Документация по членам-функциям
QTextBlockFormat::QTextBlockFormat()
Создает новый QTextBlockFormat.
Qt::Alignment QTextBlockFormat::alignment() const
Возвращает выравнивание абзаца.
См. также setAlignment().
qreal QTextBlockFormat::bottomMargin() const
Возвращает нижнюю границу абзаца.
См. также setBottomMargin() и topMargin().
[since 5.12] int QTextBlockFormat::headingLevel() const
Возвращает уровень заголовка абзаца, если это заголовок, или 0, если нет.
Эта функция была введена в Qt 5.12.
См. также setHeadingLevel().
int QTextBlockFormat::indent() const
Возвращает отступ абзаца.
См. также setIndent().
bool QTextBlockFormat::isValid() const
Возвращает true, если этот формат абзаца действителен; в противном случае возвращает false.
qreal QTextBlockFormat::leftMargin() const
Возвращает левую границу абзаца.
См. также setLeftMargin(), rightMargin() и indent().
qreal QTextBlockFormat::lineHeight(qreal scriptLineHeight, qreal scaling = 1.0) const
Возвращает высоту строк в абзаце на основе высоты строки скрипта, заданной scriptLineHeight, и заданного коэффициента масштабирования scaling.
Возвращаемое значение также зависит от заданного LineHeightType абзаца и установленного для него параметра LineHeight.
Масштабирование необходимо для высот, включающих фиксированное число пикселей, для их соответствующего масштабирования при печати.
См. также LineHeightTypes, setLineHeight() и lineHeightType().
qreal QTextBlockFormat::lineHeight() const
Возвращает свойство LineHeight для абзаца.
См. также LineHeightTypes, setLineHeight() и lineHeightType().
int QTextBlockFormat::lineHeightType() const
Возвращает свойство LineHeightType абзаца.
См. также LineHeightTypes, setLineHeight() и lineHeight().
[since 5.14] QTextBlockFormat::MarkerType QTextBlockFormat::marker() const
Возвращает маркер абзаца, если он установлен, или NoMarker если нет.
Эта функция была введена в Qt 5.14.
См. также setMarker().
bool QTextBlockFormat::nonBreakableLines() const
Возвращает true, если строки в абзаце неразрывны; в противном случае возвращает false.
См. также setNonBreakableLines().
QTextFormat::PageBreakFlags QTextBlockFormat::pageBreakPolicy() const
Возвращает текущую политику разрыва страницы для абзаца. По умолчанию используется QTextFormat::PageBreak_Auto.
См. также setPageBreakPolicy().
qreal QTextBlockFormat::rightMargin() const
Возвращает правую границу абзаца.
См. также setRightMargin() и leftMargin().
void QTextBlockFormat::setAlignment(Qt::Alignment alignment)
Устанавливает выравнивание абзаца alignment.
См. также alignment().
void QTextBlockFormat::setBottomMargin(qreal margin)
Устанавливает нижнюю границу абзаца margin.
См. также bottomMargin(), setTopMargin(), setLeftMargin() и setRightMargin().
[since 5.12] void QTextBlockFormat::setHeadingLevel(int level)
Устанавливает уровень заголовка абзаца level, где 1 — это тип заголовка самого высокого уровня (обычно с самым большим размером шрифта заголовка), а увеличивающиеся значения — это все более глубокие уровни документа (и обычно с меньшими размерами шрифтов). Например, при чтении тега H1 в HTML, уровень заголовка устанавливается в 1. Установка уровня заголовка не автоматически изменяет размер шрифта; однако QTextDocumentFragment::fromHtml() одновременно устанавливает уровень заголовка и размер шрифта.
Если абзац не является заголовком, уровень следует установить в 0 (по умолчанию).
Эта функция была введена в Qt 5.12.
См. также headingLevel().
void QTextBlockFormat::setIndent(int indentation)
Устанавливает отступ абзаца indentation. Границы устанавливаются независимо от отступа с помощью setLeftMargin() и setTextIndent(). Отступ indentation — целое число, которое умножается на стандартный отступ во всем документе, что приводит к фактическому отступу абзаца.
См. также indent() и QTextDocument::indentWidth().
void QTextBlockFormat::setLeftMargin(qreal margin)
Устанавливает левую границу абзаца margin. Отступ можно применять отдельно с помощью setIndent().
См. также leftMargin(), setRightMargin(), setTopMargin() и setBottomMargin().
void QTextBlockFormat::setLineHeight(qreal height, int heightType)
Устанавливает высоту строки для абзаца в значение height, которое зависит от heightType способом, описанным в перечислении LineHeightTypes.
См. также LineHeightTypes, lineHeight() и lineHeightType().
[since 5.14] void QTextBlockFormat::setMarker(QTextBlockFormat::MarkerType marker)
Устанавливает тип декорации, который должен быть отображен вместе с абзацем, в marker. Например, элемент списка может быть украшен галочкой, как отмеченной, так и неотмеченной, как замена его пули. По умолчанию NoMarker.
Эта функция была введена в Qt 5.14.
См. также marker().
void QTextBlockFormat::setNonBreakableLines(bool b)
Если b истинно, строки в абзаце обрабатываются как неразрывные; в противном случае они разрывные.
См. также nonBreakableLines().
void QTextBlockFormat::setPageBreakPolicy(QTextFormat::PageBreakFlags policy)
Устанавливает политику разрыва страницы для абзаца на policy.
См. также pageBreakPolicy().
void QTextBlockFormat::setRightMargin(qreal margin)
Устанавливает правый отступ абзаца.
См. также rightMargin(), setLeftMargin(), setTopMargin() и setBottomMargin().
void QTextBlockFormat::setTabPositions(const QList<QTextOption::Tab> &tabs)
Устанавливает позиции табуляции для текстового блока на те, которые указаны в tabs.
См. также tabPositions().
void QTextBlockFormat::setTextIndent(qreal indent)
Устанавливает отступ для первой строки в блоке. Это позволяет первой строке абзаца иметь другой отступ, чем другим строкам, улучшая читаемость текста.
См. также textIndent(), setLeftMargin(), setRightMargin(), setTopMargin() и setBottomMargin().
void QTextBlockFormat::setTopMargin(qreal margin)
Устанавливает верхний отступ абзаца.
См. также topMargin(), setBottomMargin(), setLeftMargin() и setRightMargin().
QList<QTextOption::Tab> QTextBlockFormat::tabPositions() const
Возвращает список позиций табуляции, определённых для текстового блока.
См. также setTabPositions().
qreal QTextBlockFormat::textIndent() const
Возвращает отступ текста абзаца.
См. также setTextIndent().
qreal QTextBlockFormat::topMargin() const
Возвращает верхний отступ абзаца.
См. также setTopMargin() и bottomMargin().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qtextblockformat.html