Spec-Zone.ru › Qt 6.1

Класс QStaticText

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

Заголовок: #include <QStaticText>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
  • Список всех членов, включая унаследованные

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

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

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

QStaticText(const QStaticText &other)
QStaticText(const QString &text)
QStaticText()
QStaticText & operator=(const QStaticText &other)
~QStaticText()
QStaticText::PerformanceHint performanceHint() const
void prepare(const QTransform &matrix = QTransform(), const QFont &font = QFont())
void setPerformanceHint(QStaticText::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
bool operator==(const QStaticText &other) const

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

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

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

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

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

class MyWidget: public QWidget
{
public:
    MyWidget(QWidget *parent = nullptr) : QWidget(parent), m_staticText("This is static text")

protected:
    void paintEvent(QPaintEvent *)
    {
        QPainter painter(this);
        painter.drawStaticText(0, 0, m_staticText);
    }

private:
    QStaticText m_staticText;
};

Класс 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(const QStaticText &other)

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

QStaticText::QStaticText(const QString &text)

Создает объект QStaticText со заданным text.

QStaticText::QStaticText()

Создает пустой QStaticText

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

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

QStaticText::~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::setWorldTransform().

void QStaticText::setPerformanceHint(QStaticText::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. HTML-теги, изменяющие шрифт, цвет или макет текста, поддерживаются QStaticText.

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

См. также 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 если тексты, шрифты или максимальные размеры отличаются.

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-6.1/qstatictext.html

Spec-Zone.ru

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