Spec-Zone.ru › Qt 5.13

Класс QStaticText

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

Заголовок: #include <QStaticText>
qmake: QT += gui
С: Qt 4.7

Этот класс был представлен в Qt 4.7.

  • Список всех членов, включая унаследованные

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

перечисление 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 = 0) : 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::setMatrix().

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

Spec-Zone.ru

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