Spec-Zone.ru › Qt 5.12

Класс QStaticText

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

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

Типы public

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

Функции public

QStaticText()
QStaticText(const QString &text)
QStaticText(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
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(), поэтому этого следует избегать.

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.

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

enum QStaticText::PerformanceHint

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

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

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

QStaticText::QStaticText()

Конструирует пустой QStaticText

QStaticText::QStaticText(const QString &text)

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

QStaticText::QStaticText(const QStaticText &other)

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

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

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

Spec-Zone.ru

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