Spec-Zone.ru › Qt 5.9

Класс QStaticText

Класс QStaticText обеспечивает оптимизированный вывод текста, когда текст и его форматирование обновляются редко. Подробнее...

Заголовок: #include <QStaticText>
qmake: QT += gui
С момента: Qt 4.7
  • Список всех членов, включая унаследованные

Открытые типы

перечисление PerformanceHint { ModerateCaching, AggressiveCaching }

Открытые функции

QStaticText()
QStaticText(const QString &text)
QStaticText(const QStaticText &other)
~QStaticText()
PerformanceHint performanceHint() const
void prepare(const QTransform &matrix = QTransform(), const QFont &font = QFont())
void setPerformanceHint(PerformanceHint performanceHint)
void setText(const QString &text)
void setTextFormat(Qt::TextFormat textFormat)
void setTextOption(const QTextOption &textOption)
void setTextWidth(qreal textWidth)
QSizeF size() const
void swap(QStaticText &other)
QString text() const
Qt::TextFormat textFormat() const
QTextOption textOption() const
qreal textWidth() const
bool operator!=(const QStaticText &other) const
QStaticText & operator=(QStaticText &&other)
QStaticText & operator=(const QStaticText &other)
bool operator==(const QStaticText &other) const

Подробное описание

Класс QStaticText обеспечивает оптимизированный вывод текста, когда текст и его форматирование обновляются редко.

QStaticText предоставляет способ кэширования данных форматирования блока текста, чтобы его можно было выводить более эффективно, чем с помощью QPainter::drawText(), в котором информация о форматировании пересчитывается при каждом вызове.

Класс в основном обеспечивает оптимизацию для случаев, когда текст, его шрифт и преобразования надрисовываемым объектом сохраняются неизменными при нескольких событиях рисования. Если текст или его форматирование изменяется при каждой итерации, QPainter::drawText() — более эффективный вариант, так как статический текст должен будет пересчитывать форматирование, чтобы учитывать новое состояние.

Преобразование объекта надрисовываемого объекта не приведет к пересчёту форматирования текста, но может немного повлиять на производительность drawStaticText(). Изменение любых других частей преобразования надрисовываемого объекта или шрифта надрисовываемого объекта приведет к пересчёту форматирования статического текста. Это следует избегать, насколько это возможно, чтобы максимально увеличить производительность использования QStaticText.

Кроме того, drawStaticText() поддерживает только аффинные преобразования. Вызов drawStaticText() на проекции надрисовываемого объекта будет немного хуже, чем использование обычного вызова drawText(), поэтому этого следует избегать.

Класс QStaticText можно использовать для имитации поведения QPainter::drawText() в определённой точке без ограничений, а также при вызове QPainter::drawText() с ограничительной прямоугольной областью.

Если прямоугольная ограничительная область не требуется, создайте объект QStaticText без установки предпочтительной ширины текста. Тогда текст будет занимать одну строку.

Если вы зададите ширину текста объекта QStaticText, это ограничит текст. Текст будет отформатирован таким образом, что ни одна строка не превысит заданную ширину. Ширина текста, заданная для QStaticText, не используется автоматически для обрезки. Чтобы добиться обрезки в дополнение к переводу строки, используйте QPainter::setClipRect(). Позиция текста определяется аргументом, переданным в QPainter::drawStaticText(), и может меняться при каждом вызове с минимальным влиянием на производительность.

Для удобства можно применить форматирование к тексту с помощью подмножества HTML, поддерживаемого QTextDocument. QStaticText попытается угадать формат входного текста с помощью Qt::mightBeRichText() и интерпретировать его как форматированный текст, если эта функция возвращает true. Чтобы принудительно отображать содержимое QStaticText как обычный текст или форматированный текст, используйте функцию QStaticText::setTextFormat() и передайте соответственно Qt::PlainText и Qt::RichText.

QStaticText может представлять только текст, поэтому будут уважаться только те теги HTML, которые изменяют форматирование или внешний вид текста. Например, добавление изображения во входной HTML приведет к включению изображения в форматирование, повлияя на расположение символов текста, но само изображение не будет отображаться. Результатом будет пустая область размером с изображение в выводе. Аналогично, использование таблиц приведет к форматированию текста в виде таблицы, но границы не будут нарисованы.

Если статический текст рисуется впервые, или если статический текст или шрифт надрисовываемого объекта были изменены с момента последнего рисования, форматирование текста необходимо пересчитать. В некоторых движках рисования изменение матрицы надрисовываемого объекта также приведёт к пересчёту форматирования. В частности, это произойдёт во всех движках, кроме OpenGL2. Пересчёт форматирования нанесёт издержки вызову QPainter::drawStaticText() в том месте, где это происходит. Чтобы избежать этих издержек в событии рисования, вы можете вызвать prepare() заранее, чтобы убедиться, что форматирование вычислено.

См. также QPainter::drawText(), QPainter::drawStaticText(), QTextLayout и QTextDocument.

Документация по типам членов

перечисление QStaticText::PerformanceHint

Это перечисление разных подсказок производительности, которые можно задать для QStaticText. Эти подсказки можно использовать для указания того, что QStaticText должен использовать дополнительные кэши, если это возможно, чтобы улучшить производительность за счёт памяти. В частности, установка подсказки производительности AggressiveCaching для QStaticText улучшит производительность при использовании графической системы OpenGL или при рисовании на QOpenGLWidget.

Постоянная Значение Описание
QStaticText::ModerateCaching 0 Выполнить базовый кэширование для высокой производительности с низкой стоимостью памяти.
QStaticText::AggressiveCaching 1 Использовать дополнительное кэширование, когда доступно. Это может улучшить производительность за счёт большей стоимости памяти.

Документация по функциям членов

QStaticText::QStaticText()

Конструирует пустой объект QStaticText.

QStaticText::QStaticText(const QString &text)

Конструирует объект QStaticText с заданным текстом.

QStaticText::QStaticText(const QStaticText &other)

Создаёт объект QStaticText, являющийся копией other.

QStaticText::~QStaticText()

Уничтожает QStaticText.

PerformanceHint QStaticText::performanceHint() const

Возвращает установленный параметр производительности для QStaticText.

См. также setPerformanceHint().

void QStaticText::prepare(const QTransform &matrix = QTransform(), const QFont &font = QFont())

Подготавливает объект QStaticText для отрисовки с заданной matrix и font, чтобы избежать накладных расходов при вызове drawStaticText().

При вызове drawStaticText() макет QStaticText будет пересчитан, если любая часть объекта QStaticText изменилась с момента последнего отображения. Он также будет пересчитан, если шрифт отрисовщика отличается от шрифта при последнем отображении QStaticText, или, в любой графической системе кроме OpenGL2, если матрица отрисовщика была изменена с момента последней отрисовки статического текста.

Чтобы избежать накладных расходов при создании макета в первый раз, когда вы отрисовываете QStaticText после внесения изменений, используйте функцию prepare() и передайте ожидаемую matrix и font, которые будут использоваться при отрисовке текста.

См. также QPainter::setFont() и QPainter::setMatrix().

void QStaticText::setPerformanceHint(PerformanceHint performanceHint)

Устанавливает параметр производительности QStaticText в соответствии с заданным performanceHint. performanceHint используется для настройки уровня кэширования с целью повышения производительности.

По умолчанию используется QStaticText::ModerateCaching.

Примечание: Эта функция заставит пересчитать макет текста.

См. также performanceHint().

void QStaticText::setText(const QString &text)

Устанавливает текст QStaticText в text.

Примечание: Эта функция заставит пересчитать макет текста.

См. также text().

void QStaticText::setTextFormat(Qt::TextFormat textFormat)

Устанавливает формат текста QStaticText в textFormat. Если textFormat установлен в Qt::AutoText (по умолчанию), формат текста будет определён с помощью функции Qt::mightBeRichText(). Если формат текста Qt::PlainText, текст отобразится как есть, в то время как если формат Qt::RichText, он интерпретируется как HTML. QStaticText поддерживает HTML-теги, изменяющие шрифт, цвет или структуру текста.

Примечание: Эта функция заставит пересчитать макет текста.

См. также textFormat(), setText() и text().

void QStaticText::setTextOption(const QTextOption &textOption)

Устанавливает структуру опций текста, управляющую процессом форматирования, в заданное значение textOption.

См. также textOption().

void QStaticText::setTextWidth(qreal textWidth)

Устанавливает предпочтительную ширину для этого QStaticText. Если текст шире заданной ширины, он будет разбиваться на несколько строк и увеличиваться по вертикали. Если текст не может быть разбит на несколько строк, он будет шире заданной textWidth.

Установка предпочтительной ширины текста в отрицательное значение сделает текст неограниченным по ширине.

Используйте size() для получения фактического размера текста.

Примечание: Эта функция заставит пересчитать макет текста.

См. также textWidth() и size().

QSizeF QStaticText::size() const

Возвращает размер ограничительной прямоугольной области для этого QStaticText.

См. также textWidth().

void QStaticText::swap(QStaticText &other)

Обменивает экземпляр этого статического текста с other. Эта функция очень быстрая и никогда не терпит неудач.

Эта функция была добавлена в Qt 5.0.

QString QStaticText::text() const

Возвращает текст QStaticText.

См. также setText().

Qt::TextFormat QStaticText::textFormat() const

Возвращает формат текста QStaticText.

См. также setTextFormat(), setText() и text().

QTextOption QStaticText::textOption() const

Возвращает текущие опции текста, используемые для управления процессом форматирования.

См. также setTextOption().

qreal QStaticText::textWidth() const

Возвращает предпочтительную ширину для этого QStaticText.

См. также setTextWidth().

bool QStaticText::operator!=(const QStaticText &other) const

Сравнивает other с этим QStaticText. Возвращает true если тексты, шрифты или максимальные размеры различаются.

QStaticText &QStaticText::operator=(QStaticText &&other)

Оператор перемещаемого присваивания.

QStaticText &QStaticText::operator=(const QStaticText &other)

Присваивает other этому QStaticText.

bool QStaticText::operator==(const QStaticText &other) const

Сравнивает other с этим QStaticText. Возвращает true если тексты, шрифты и ширины текста совпадают.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qstatictext.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API