Тип QML Text
Определяет, как добавить форматированный текст в сцену. Подробнее...
| Заявление об импорте: | import QtQuick 2.13 |
| Наследует: |
Свойства
- advance : размер
- antialiasing : bool
- baseUrl : url
- bottomPadding : вещественное
- clip : bool
- цвет : цвет
- высота содержимого : вещественное
- ширина содержимого : вещественное
- эффективное горизонтальное выравнивание : перечисление
- elide : перечисление
- font.bold : bool
- font.capitalization : перечисление
- font.family : строка
- font.hintingPreference : перечисление
- font.italic : bool
- font.kerning : bool
- font.letterSpacing : вещественное
- font.pixelSize : целое
- font.pointSize : вещественное
- font.preferShaping : bool
- font.strikeout : bool
- font.styleName : строка
- font.underline : bool
- font.weight : перечисление
- font.wordSpacing : вещественное
- fontInfo.bold : bool
- fontInfo.family : строка
- fontInfo.italic : bool
- fontInfo.pixelSize : строка
- fontInfo.pointSize : вещественное
- fontInfo.styleName : строка
- fontInfo.weight : целое
- fontSizeMode : перечисление
- горизонтальное выравнивание : перечисление
- hoveredLink : строка
- leftPadding : вещественное
- количество строк : целое
- высота строки : вещественное
- lineHeightMode : перечисление
- цвет ссылки : цвет
- максимальное количество строк : целое
- минимальный размер пикселей : целое
- минимальный размер точки : целое
- отступ : вещественное
- тип рендеринга : перечисление
- правый отступ : вещественное
- стиль : перечисление
- цвет стиля : цвет
- текст : строка
- формат текста : перечисление
- верхний отступ : вещественное
- обрезанный : bool
- вертикальное выравнивание : перечисление
- режим обрезки : перечисление
Сигналы
- lineLaidOut(строка)
- linkActivated(ссылка)
- linkHovered(ссылка)
Методы
- forceLayout()
- linkAt(x, вещественное y)
Подробное описание
Элементы Text могут отображать как обычный, так и форматированный текст. Например, красный текст с определённым шрифтом и размером можно определить так:
Text {
text: "Hello World!"
font.family: "Helvetica"
font.pointSize: 24
color: "red"
} Форматированный текст определяется с помощью разметки в стиле HTML:
Text {
text: "<b>Hello</b> <i>World!</i>"
} Если высота и ширина не заданы явно, Text попытается определить необходимое пространство и установить его соответствующим образом. Если wrapMode не установлен, всегда отдаётся предпочтение ширине по сравнению с высотой (весь текст будет размещён на одной строке).
Свойство elide альтернативно может использоваться для размещения одной строки обычного текста по заданной ширине.
Обратите внимание, что поддерживаемый подмножество HTML ограничено. Также, если текст содержит теги HTML img, загружающие удалённые изображения, текст перегружается.
Text предоставляет только для чтения текст. Для редактируемого текста см. TextEdit.
См. также Пример шрифтов.
Документация по свойствам
отступ : вещественное
Эти свойства содержат отступы вокруг содержимого. Это пространство зарезервировано дополнительно к contentWidth и contentHeight.
Эта документация была введена в Qt 5.6.
горизонтальное выравнивание : перечисление
Устанавливает горизонтальное и вертикальное выравнивание текста в пределах ширины и высоты элементов Text. По умолчанию текст выравнивается по вертикали сверху. Горизонтальное выравнивание следует естественному выравниванию текста, например, текст, который читается слева направо, будет выровнен слева.
Допустимые значения для horizontalAlignment являются Text.AlignLeft, Text.AlignRight, Text.AlignHCenter и Text.AlignJustify. Допустимые значения для verticalAlignment являются Text.AlignTop, Text.AlignBottom и Text.AlignVCenter.
Обратите внимание, что для одной строки текста размер текста — это область текста. В этом общем случае все выравнивания эквивалентны. Если вы хотите выровнять текст по центру родительского элемента, вам нужно либо изменить Item::anchors, либо установить horizontalAlignment на Text.AlignHCenter и связать ширину с шириной родительского элемента.
При использовании присоединённого свойства LayoutMirroring::enabled для отражения макетов приложения, горизонтальное выравнивание текста также будет отражено. Однако свойство horizontalAlignment останется без изменений. Для запроса эффективного горизонтального выравнивания Text используйте свойство только для чтения effectiveHorizontalAlignment.
advance : размер
Расстояние в пикселях от начала базовой линии первого символа элемента текста до начала базовой линии первого символа элемента текста, непосредственно следующего за этим элементом в потоке текста.
Обратите внимание, что отступ может быть отрицательным, если текст выводится справа налево.
Это свойство было введено в Qt 5.10.
сглаживание : bool
Используется для определения, нужно ли использовать сглаживание для Text. Только Text с renderType Text.NativeRendering может отключить сглаживание.
По умолчанию значение true.
baseUrl : url
Это свойство определяет базовый URL, используемый для разрешения относительных URL-адресов в тексте.
URL-адреса разрешаются для размещения в той же директории, что и цель базового URL-адреса, означая, что любая часть пути после последнего '/' будет проигнорирована.
| Базовый URL | Относительный URL | Разрешённый URL |
|---|---|---|
| http://qt-project.org/ | images/logo.png | http://qt-project.org/images/logo.png |
| http://qt-project.org/index.html | images/logo.png | http://qt-project.org/images/logo.png |
| http://qt-project.org/content | images/logo.png | http://qt-project.org/content/images/logo.png |
| http://qt-project.org/content/ | images/logo.png | http://qt-project.org/content/images/logo.png |
| http://qt-project.org/content/index.html | images/logo.png | http://qt-project.org/content/images/logo.png |
| http://qt-project.org/content/index.html | ../images/logo.png | http://qt-project.org/images/logo.png |
| http://qt-project.org/content/index.html | /images/logo.png | http://qt-project.org/images/logo.png |
Значение по умолчанию — URL файла QML, создающего элемент Text.
clip : bool
Данное свойство определяет, обрезается ли текст.
Обратите внимание, что если текст не помещается в прямоугольник обводки, он будет резко обрезаться.
Если нужно отобразить потенциально длинный текст в ограниченном пространстве, вероятно, следует использовать elide.
color : color
Цвет текста.
Пример зеленого текста, определенного в шестнадцатеричном формате:
Text {
color: "#00FF00"
text: "green text"
} Пример стального синего текста, определенного с помощью имени цвета SVG:
Text {
color: "steelblue"
text: "blue text"
} contentHeight : real
Возвращает высоту текста, включая высоту, превышающую высоту, ограниченную недостатком места для всего текста.
contentWidth : real
Возвращает ширину текста, включая ширину, превышающую ширину, ограниченную недостаточным обтеканием, если WrapMode установлен.
elide : enumeration
Установите это свойство для обрезки частей текста, подходящих к ширине элемента Text. Текст будет обрезаться только в том случае, если явно задана ширина.
Это свойство нельзя использовать с форматированным текстом.
Обрезка может быть:
- Text.ElideNone — значение по умолчанию
- Text.ElideLeft
- Text.ElideMiddle
- Text.ElideRight
Если это свойство установлено в Text.ElideRight, оно может использоваться с обтеканием текста. Текст будет обрезаться только в том случае, если maximumLineCount, или height установлено. Если оба maximumLineCount и height установлены, maximumLineCount применится, если строки не помещаются в разрешенную высоту.
Если текст является строкой с несколькими длинами, а режим не Text.ElideNone, будет использоваться первая строка, которая помещается, в противном случае будет обрезана последняя.
Строки с несколькими длинами упорядочены от длинных к коротким, разделенные символом Unicode "String Terminator" U009C (записывается в QML как "\u009C" или "\x9C").
font.bold : bool
Устанавливает, является ли вес шрифта жирным.
font.capitalization : enumeration
Устанавливает регистр текста.
- Font.MixedCase — обычный вариант отображения текста, без изменений регистра.
- Font.AllUppercase — меняет текст на прописные буквы.
- Font.AllLowercase — меняет текст на строчные буквы.
- Font.SmallCaps — меняет текст на полужирный шрифт.
- Font.Capitalize — изменяет текст, делая первую букву каждого слова заглавной.
Text { text: "Hello"; font.capitalization: Font.AllLowercase } font.family : string
Устанавливает имя семейства шрифта.
Имя семейства не чувствительно к регистру и может необязательно включать имя литейного завода, например, «Helvetica [Cronyx]». Если семейство доступно от нескольких литейных заводов, и литейный завод не указан, выбирается произвольный литейный завод. Если семейство недоступно, будет установлено семейство, используя алгоритм подбора шрифтов.
font.hintingPreference : enumeration
Устанавливает предпочтительный уровень начертания текста. Это подсказка для системы рендеринга текста использовать определенный уровень начертания, и поддержка варьируется в зависимости от платформы. Подробнее см. таблицу в документации для QFont::HintingPreference.
Примечание: Это свойство действует только при использовании вместе с типом рендеринга Text.NativeRendering.
Font.PreferDefaultHinting — использовать уровень начертания по умолчанию для целевой платформы.
Font.PreferNoHinting — по возможности отображать текст без начертания контуров глифов. Разметка текста будет типографически точной, используя те же метрики, что и, например, при печати.
Font.PreferVerticalHinting — по возможности отображать текст без начертания по горизонтали, но выравнивать глифы по пиксельной сетке по вертикали. Текст будет выглядеть резче на дисплеях, где плотность слишком низкая, чтобы обеспечить точное отображение глифов. Но поскольку горизонтальные метрики глифов не начерчены, разметка текста будет масштабируемой на устройствах с большей плотностью (таких как принтеры) без изменения деталей, таких как переводы строк.
Font.PreferFullHinting — по возможности отображать текст с начертанием по горизонтали и вертикали. Текст будет изменен для повышения читаемости на целевом устройстве, но поскольку метрики будут зависеть от целевого размера текста, позиции глифов, переводы строк и другие типографические детали не будут масштабироваться, что означает, что разметка текста может выглядеть по-разному на устройствах с разной плотностью пикселей.
Text { text: "Hello"; renderType: Text.NativeRendering; font.hintingPreference: Font.PreferVerticalHinting } Это свойство было добавлено в Qt 5.8.
font.italic : bool
Устанавливает, имеет ли шрифт курсивный стиль.
font.kerning : bool
Включает или выключает функцию кернинга OpenType при форматировании текста. Выключение может улучшить производительность при создании или изменении текста за счет некоторых косметических функций. Значение по умолчанию — true.
Text { text: "OATS FLAVOUR WAY"; font.kerning: false } Это свойство было добавлено в Qt 5.10.
font.letterSpacing : real
Устанавливает интерлиньяж для шрифта.
Изменение интерлиньяжа изменяет стандартное расстояние между отдельными буквами в шрифте. Положительное значение увеличивает интерлиньяж на соответствующее количество пикселей; отрицательное значение уменьшает интерлиньяж.
font.pixelSize : int
Устанавливает размер шрифта в пикселях.
Использование этой функции делает шрифт зависимым от устройства. Используйте pointSize для установки размера шрифта независимо от устройства.
font.pointSize : real
Устанавливает размер шрифта в пунктах. Размер шрифта должен быть больше нуля.
font.preferShaping : bool
Иногда шрифт применяет сложные правила к набору символов, чтобы отобразить их правильно. В некоторых письменных системах, таких как брахмические письмена, это необходимо для читаемости текста, но, например, в латинском письме это просто косметическая функция. Установка свойства preferShaping в значение false отключит все такие функции, когда они не требуются, что в большинстве случаев повысит производительность.
Значение по умолчанию — true.
Text { text: "Some text"; font.preferShaping: false } Это свойство было добавлено в Qt 5.10.
font.strikeout : bool
Устанавливает, имеет ли шрифт стиль зачеркивания.
font.styleName : string
Устанавливает имя стиля шрифта.
Имя стиля не чувствительно к регистру. При установке шрифт будет сопоставляться с именем стиля вместо свойств шрифта font.weight, font.bold и font.italic.
Это свойство было добавлено в Qt 5.6.
font.underline : bool
Устанавливает, подчеркнут ли текст.
font.weight : enumeration
Устанавливает вес шрифта.
Вес может быть одним из следующих:
- Font.Thin
- Font.Light
- Font.ExtraLight
- Font.Normal — значение по умолчанию
- Font.Medium
- Font.DemiBold
- Font.Bold
- Font.ExtraBold
- Font.Black
Text { text: "Hello"; font.weight: Font.DemiBold } font.wordSpacing : real
Устанавливает межсловный интервал для шрифта.
Изменение межсловного интервала изменяет стандартное расстояние между отдельными словами. Положительное значение увеличивает межсловный интервал на соответствующее количество пикселей, а отрицательное значение уменьшает расстояние между словами.
fontInfo.bold : bool
Состояние жирности информации о шрифте, которая была решена для текущего шрифта и fontSizeMode. Это значение true, если вес решенного шрифта — полужирный или выше.
Это свойство было добавлено в Qt 5.9.
fontInfo.family : string
Имя семейства шрифта, которое было выбрано для текущего шрифта и fontSizeMode.
Это свойство было добавлено в Qt 5.9.
fontInfo.italic : bool
Состояние курсива шрифта, которое было выбрано для текущего шрифта и fontSizeMode.
Это свойство было добавлено в Qt 5.9.
fontInfo.pixelSize : string
Размер шрифта в пикселях, который был выбран для текущего шрифта и fontSizeMode.
Это свойство было добавлено в Qt 5.9.
fontInfo.pointSize : real
Размер шрифта в пунктах, который был выбран для текущего шрифта и fontSizeMode.
Это свойство было добавлено в Qt 5.9.
fontInfo.styleName : string
Имя стиля шрифта, которое было выбрано для текущего шрифта и fontSizeMode.
Это свойство было добавлено в Qt 5.9.
fontInfo.weight : int
Вес шрифта, который был выбран для текущего шрифта и fontSizeMode.
Это свойство было добавлено в Qt 5.9.
fontSizeMode : перечисление
Это свойство определяет, как определяется размер шрифта отображаемого текста. Возможные значения:
- Text.FixedSize (по умолчанию) - используется размер, заданный font.pixelSize или font.pointSize.
- Text.HorizontalFit - используется наибольший размер, не превышающий заданный, который помещается по ширине элемента без перевода на следующую строку.
- Text.VerticalFit - используется наибольший размер, не превышающий заданный, который помещается по высоте элемента.
- Text.Fit - используется наибольший размер, не превышающий заданный, который помещается по ширине и высоте элемента.
Размер шрифта для подогнанного текста имеет минимальную границу, задаваемую свойством minimumPointSize или minimumPixelSize, и максимальную границу, задаваемую либо font.pointSize, либо font.pixelSize.
Text { text: "Hello"; fontSizeMode: Text.Fit; minimumPixelSize: 10; font.pixelSize: 72 } Если текст не помещается в пределах элемента с минимальным размером шрифта, текст будет усечен в соответствии со свойством elide.
hoveredLink : string
Это свойство содержит строку ссылки, когда пользователь наводит курсор на ссылку, встроенную в текст. Ссылка должна быть в формате форматированного текста или HTML, и строка hoveredLink предоставляет доступ к конкретной ссылке.
Это свойство было добавлено в Qt 5.2.
См. также linkHovered и linkAt().
lineCount : int
Возвращает количество видимых строк в элементе текста.
Это свойство не поддерживается для форматированного текста.
См. также maximumLineCount.
lineHeight : real
Устанавливает интервал между строками текста. Значение может быть в пикселях или множителем в зависимости от lineHeightMode.
Значение по умолчанию — множитель 1.0. Интервал между строками должен быть положительным значением.
lineHeightMode : перечисление
Это свойство определяет, как задается интервал между строками. Возможные значения:
- Text.ProportionalHeight (по умолчанию) - устанавливает интервал пропорционально строке (как множитель). Например, значение 2 устанавливает двойной интервал.
- Text.FixedHeight - устанавливает интервал между строками в фиксированное значение (в пикселях).
linkColor : цвет
Цвет ссылок в тексте.
Это свойство работает с форматированным текстом StyledText textFormat, но не с RichText. Цвет ссылок в RichText можно задать, включив теги стилей CSS в текст.
maximumLineCount : int
Установите это свойство для ограничения количества строк, которые будет отображать элемент текста. Если elide установлен как Text.ElideRight, текст будет усечен соответствующим образом. По умолчанию это значение максимального возможного целого числа.
Это свойство не поддерживается для форматированного текста.
minimumPixelSize : int
Это свойство определяет минимальный размер шрифта в пикселях текста, масштабируемый свойством fontSizeMode.
Если fontSizeMode равен Text.FixedSize или font.pixelSize равен -1, это свойство игнорируется.
minimumPointSize : int
Это свойство определяет минимальный размер шрифта в пунктах текста, масштабируемый свойством fontSizeMode.
Если fontSizeMode равен Text.FixedSize или font.pointSize равен -1, это свойство игнорируется.
renderType : перечисление
Переопределить тип рендеринга по умолчанию для этого компонента.
Поддерживаемые типы рендеринга:
- Text.QtRendering
- Text.NativeRendering
Выберите Text.NativeRendering, если вы предпочитаете, чтобы текст выглядел как родной для целевой платформы, и вам не нужны расширенные функции, такие как преобразование текста. Использование таких функций в сочетании с типом рендеринга NativeRendering приведет к плохим и иногда размытым результатам.
Тип рендеринга по умолчанию определяется QQuickWindow::textRenderType().
style : перечисление
Установить дополнительный стиль текста.
Поддерживаемые стили текста:
- Text.Normal - по умолчанию
- Text.Outline
- Text.Raised
- Text.Sunken
Row {
Text { font.pointSize: 24; text: "Normal" }
Text { font.pointSize: 24; text: "Raised"; style: Text.Raised; styleColor: "#AAAAAA" }
Text { font.pointSize: 24; text: "Outline";style: Text.Outline; styleColor: "red" }
Text { font.pointSize: 24; text: "Sunken"; style: Text.Sunken; styleColor: "#AAAAAA" }
} styleColor : цвет
Определяет вторичный цвет, используемый стилями текста.
styleColor используется в качестве цвета контура для контурного текста и как цвет тени для поднятого или опущенного текста. Если стиль не установлен, он вообще не используется.
Text { font.pointSize: 18; text: "hello"; style: Text.Raised; styleColor: "gray" } См. также style.
text : строка
Текст для отображения. Текст поддерживает как обычные, так и форматированные текстовые строки.
Элемент попытается автоматически определить, следует ли рассматривать текст как форматированный текст. Это определение выполняется с помощью Qt::mightBeRichText().
textFormat : перечисление
Способ отображения свойства text.
Поддерживаемые форматы текста:
- Text.AutoText (по умолчанию)
- Text.PlainText
- Text.StyledText
- Text.RichText
Если формат текста Text.AutoText элемент Text автоматически определит, следует ли рассматривать текст как форматированный текст. Это определение выполняется с помощью Qt::mightBeRichText(), которое использует быстрый и поэтому простой эвристический метод. В основном проверяется, есть ли что-то, что выглядит как тег, перед первой переходом на новую строку. Хотя результат может быть правильным в распространенных случаях, никакой гарантии нет.
Text.StyledText — это оптимизированный формат, поддерживающий некоторые базовые разметки стилей текста, в стиле HTML 3.2:
<b></b> - bold <del></del> - strike out (removed content) <s></s> - strike out (no longer accurate or no longer relevant content) <strong></strong> - bold <i></i> - italic <br> - new line <p> - paragraph <u> - underlined text <font color="color_name" size="1-7"></font> <h1> to <h6> - headers <a href=""> - anchor <img src="" align="top,middle,bottom" width="" height=""> - inline images <ol type="">, <ul type=""> and <li> - ordered and unordered lists <pre></pre> - preformatted > < &
Text.StyledText парсер жёсткий, требующий правильного вложенных тегов.
Column {
Text {
font.pointSize: 24
text: "<b>Hello</b> <i>World!</i>"
}
Text {
font.pointSize: 24
textFormat: Text.RichText
text: "<b>Hello</b> <i>World!</i>"
}
Text {
font.pointSize: 24
textFormat: Text.PlainText
text: "<b>Hello</b> <i>World!</i>"
}
} |
Text.RichText поддерживает более большой подмножество HTML 4, как описано на странице Поддерживаемое подмножество HTML. Вы должны предпочесть Text.PlainText или Text.StyledText, поскольку они обеспечивают лучшую производительность.
truncated : bool
Возвращает true, если текст был усечен из-за maximumLineCount или elide.
Это свойство не поддерживается для форматированного текста.
См. также maximumLineCount и elide.
wrapMode : перечисление
Установите это свойство для перевода текста по ширине элемента Text. Текст будет переведён только в случае, если задана явная ширина. wrapMode может быть одним из:
- Text.NoWrap (по умолчанию) - обёртывание не будет выполнено. Если текст содержит недостаточно символов новой строки, то contentWidth превысит заданную ширину.
- Text.WordWrap - обёртывание выполняется только по границам слов. Если слово слишком длинное, то contentWidth превысит заданную ширину.
- Text.WrapAnywhere - обёртывание выполняется в любой точке строки, даже если оно происходит посреди слова.
- Text.Wrap - если возможно, обёртывание выполняется по границам слов; в противном случае оно выполняется в подходящей точке строки, даже посреди слова.
Документация по сигналам
lineLaidOut(line)
Этот сигнал испускается для каждой строки текста, которая выкладывается во время процесса выкладки. Объект line содержит дополнительные сведения о строке, которая в данный момент выкладывается.
Это предоставляет возможность позиционировать и изменять размер строки во время её выкладки. Например, это можно использовать для создания столбцов или выкладки текста вокруг объектов.
Свойства объекта line:
- number (только для чтения)
- x
- y
- width
- height
Например, это сдвинет первые 5 строк элемента Text на 100 пикселей вправо:
onLineLaidOut: {
if (line.number < 5) {
line.x = line.x + 100
line.width = line.width - 100
}
} Соответствующий обработчик — onLineLaidOut.
linkActivated(link)
Этот сигнал испускается, когда пользователь нажимает на ссылку, встроенную в текст. Ссылка должна быть в формате rich text или HTML, и строка link предоставляет доступ к конкретной ссылке.
Text {
textFormat: Text.RichText
text: "See the <a href=\"http://qt-project.org\">Qt Project website</a>."
onLinkActivated: console.log(link + " link activated")
} Пример кода отобразит текст "Посмотреть веб-сайт Qt Project".
Нажатие на выделенную ссылку выведет http://qt-project.org link activated в консоль.
Соответствующий обработчик — onLinkActivated.
linkHovered(link)
Этот сигнал испускается, когда пользователь наводит курсор на ссылку, встроенную в текст. Ссылка должна быть в формате rich text или HTML, и строка link предоставляет доступ к конкретной ссылке.
Соответствующий обработчик — onLinkHovered.
Этот сигнал был добавлен в Qt 5.2.
См. также hoveredLink и linkAt().
Документация по методам
forceLayout()
Вызывает повторную выкладку отображаемого текста.
Этот метод был добавлен в Qt 5.9.
linkAt(x, real y)
Возвращает строку ссылки в точке x, y в координатах содержимого или пустую строку, если в этой точке нет ссылки.
Этот метод был добавлен в Qt 5.3.
См. также hoveredLink.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qml-qtquick-text.html