Spec-Zone.ru › Qt 5.11

Класс QFontMetricsF

Класс QFontMetricsF предоставляет информацию о метриках шрифта. Подробнее...

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

Примечание: Все функции в этом классе являются перевходными.

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

QFontMetricsF(const QFont &font)
QFontMetricsF(const QFont &font, QPaintDevice *paintdevice)
QFontMetricsF(const QFontMetrics &fontMetrics)
QFontMetricsF(const QFontMetricsF &fm)
~QFontMetricsF()
qreal ascent() const
qreal averageCharWidth() const
QRectF boundingRect(const QString &text) const
QRectF boundingRect(QChar ch) const
QRectF boundingRect(const QRectF &rect, int flags, const QString &text, int tabStops = 0, int *tabArray = nullptr) const
qreal capHeight() const
qreal descent() const
QString elidedText(const QString &text, Qt::TextElideMode mode, qreal width, int flags = 0) const
qreal height() const
qreal horizontalAdvance(const QString &text, int length = -1) const
qreal horizontalAdvance(QChar ch) const
bool inFont(QChar ch) const
bool inFontUcs4(uint ch) const
qreal leading() const
qreal leftBearing(QChar ch) const
qreal lineSpacing() const
qreal lineWidth() const
qreal maxWidth() const
qreal minLeftBearing() const
qreal minRightBearing() const
qreal overlinePos() const
qreal rightBearing(QChar ch) const
QSizeF size(int flags, const QString &text, int tabStops = 0, int *tabArray = nullptr) const
qreal strikeOutPos() const
void swap(QFontMetricsF &other)
QRectF tightBoundingRect(const QString &text) const
qreal underlinePos() const
qreal xHeight() const
bool operator!=(const QFontMetricsF &other) const
QFontMetricsF & operator=(const QFontMetricsF &fm)
QFontMetricsF & operator=(const QFontMetrics &other)
QFontMetricsF & operator=(QFontMetricsF &&other)
bool operator==(const QFontMetricsF &other) const

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

Класс QFontMetricsF предоставляет информацию о метриках шрифта.

QFontMetricsF функции рассчитывают размер символов и строк для заданного шрифта. Вы можете создать объект QFontMetricsF с существующим QFont для получения метрик этого шрифта. Если шрифт будет изменен позже, объект метрик шрифта не будет обновлен.

После создания объект предоставляет функции для доступа к отдельным метрикам шрифта, его символов и для строк, отображаемых в шрифте.

Некоторые функции работают со шрифтом: ascent(), descent(), height(), leading() и lineSpacing() возвращают основные свойства размера шрифта. Функции underlinePos(), overlinePos(), strikeOutPos() и lineWidth() возвращают свойства линии, подчеркивающей, перечеркивающей или зачеркивающей символы. Эти функции работают быстро.

Также есть некоторые функции, работающие с набором глифов в шрифте: minLeftBearing(), minRightBearing() и maxWidth(). Они по необходимости медленные, и мы рекомендуем избегать их, если это возможно.

Для каждого символа вы можете получить его ширину(), leftBearing() и rightBearing() и определить, входит ли он в шрифт, используя inFont(). Вы также можете обращаться к символу как к строке и использовать функции строк для него.

Функции для строк включают width(), для возврата ширины строки в пикселях (или пунктах, для принтера), boundingRect(), для возврата прямоугольника, достаточно большого, чтобы содержать отображаемую строку, и size(), для возврата размера этого прямоугольника.

Пример:

QFont font("times", 24);
QFontMetricsF fm(font);
qreal pixelsWide = fm.horizontalAdvance("What's the width of this text?");
qreal pixelsHigh = fm.height();

См. также QFont, QFontInfo и QFontDatabase.

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

QFontMetricsF::QFontMetricsF(const QFont &font)

Создает объект метрик шрифта для font.

Метрики шрифта будут совместимы с устройством рисования, используемым для создания font.

Объект метрик шрифта хранит информацию о шрифте, переданном в конструктор в момент его создания, и не обновляется, если атрибуты шрифта изменяются позже.

Используйте QFontMetricsF(const QFont &, QPaintDevice *) для получения метрик шрифта, совместимых с определенным устройством рисования.

QFontMetricsF::QFontMetricsF(const QFont &font, QPaintDevice *paintdevice)

Создаёт объект метрик шрифта для font и paintdevice.

Метрики шрифта будут совместимы с переданным устройством отрисовки. Если paintdevice равен 0, метрики будут совместимы с экраном, т.е. такими, как вы получите, если используете шрифт для отрисовки текста на виджетах или пиксельмапах, а не на QPicture или QPrinter.

Объект метрик шрифта хранит информацию о шрифте, переданном в конструктор в момент создания, и не обновляется, если атрибуты шрифта изменяются позднее.

QFontMetricsF::QFontMetricsF(const QFontMetrics &fontMetrics)

Создаёт объект метрик шрифта с плавающей точкой по заданному объекту fontMetrics.

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

QFontMetricsF::QFontMetricsF(const QFontMetricsF &fm)

Создаёт копию fm.

QFontMetricsF::~QFontMetricsF()

Удаляет объект метрик шрифта и освобождает все выделенные ресурсы.

qreal QFontMetricsF::ascent() const

Возвращает восходящую высоту шрифта.

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

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

qreal QFontMetricsF::averageCharWidth() const

Возвращает среднюю ширину глифов в шрифте.

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

QRectF QFontMetricsF::boundingRect(const QString &text) const

Возвращает прямоугольник, охватывающий символы в строке, заданной text. Охватывающий прямоугольник всегда охватывает по крайней мере те пиксели, которые текст будет занимать при отрисовке в (0, 0).

Обратите внимание, что охватывающий прямоугольник может простираться влево от (0, 0), например, для наклонных шрифтов, и что ширина возвращаемого прямоугольника может отличаться от значения, возвращаемого методом width().

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

Символы новой строки обрабатываются как обычные символы, а не как разрывы строк.

Высота охватывающего прямоугольника по крайней мере не меньше, чем значение, возвращаемое height().

См. также width(), height() и QPainter::boundingRect().

QRectF QFontMetricsF::boundingRect(QChar ch) const

Возвращает охватывающий прямоугольник символа ch относительно самой левой точки на базовой линии.

Обратите внимание, что охватывающий прямоугольник может простираться влево от (0, 0), например, для наклонных шрифтов, и что выходной текст может охватывать все пиксели в охватывающем прямоугольнике.

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

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

QRectF QFontMetricsF::boundingRect(const QRectF &rect, int flags, const QString &text, int tabStops = 0, int *tabArray = nullptr) const

Это перегруженная функция.

Возвращает охватывающий прямоугольник символов в заданном text. Это набор пикселей, которые текст займет при отрисовке, ограниченной охватывающим прямоугольником, заданным rect.

Аргумент flags — это побитовое ИЛИ следующих флагов:

  • Qt::AlignLeft выравнивает по левому краю, за исключением арабского и иврита, где выравнивание по правому краю.
  • Qt::AlignRight выравнивает по правому краю, за исключением арабского и иврита, где выравнивание по левому краю.
  • Qt::AlignJustify выравнивает текст по ширине.
  • Qt::AlignHCenter выравнивает по горизонтали по центру.
  • Qt::AlignTop выравнивает по верхнему краю.
  • Qt::AlignBottom выравнивает по нижнему краю.
  • Qt::AlignVCenter выравнивает по вертикали по центру.
  • Qt::AlignCenter (== Qt::AlignHCenter | Qt::AlignVCenter)
  • Qt::TextSingleLine игнорирует символы новой строки в тексте.
  • Qt::TextExpandTabs расширяет табуляцию (см. ниже)
  • Qt::TextShowMnemonic интерпретирует "&x" как x; т.е., подчёркнутый.
  • Qt::TextWordWrap разрывает текст, чтобы он уместился в прямоугольник.

Qt::Horizontal выравнивание по умолчанию — Qt::AlignLeft, а вертикальное выравнивание — Qt::AlignTop.

Если установлено несколько флагов горизонтального или вертикального выравнивания, результат выравнивания не определён.

Эти флаги определены в Qt::AlignmentFlag.

Если Qt::TextExpandTabs установлен в flags, используется следующее поведение для интерпретации символов табуляции в тексте:

  • Если tabArray не равен null, он указывает на 0-терминированную последовательность позиций пикселей для табуляций в тексте.
  • Если tabStops не равно 0, оно используется в качестве интервала табуляции (в пикселях).

Обратите внимание, что охватывающий прямоугольник может простираться влево от (0, 0), например, для наклонных шрифтов.

Символы новой строки обрабатываются как разрывы строк.

Несмотря на разные фактические высоты символов, высоты охватывающих прямоугольников "Да" и "да" одинаковы.

Охватывающий прямоугольник, возвращаемый этой функцией, немного больше, чем тот, который рассчитывается более простой функцией boundingRect(). Эта функция использует максимальные левые и правые отступы шрифта, что необходимо для многострочного текста для правильного выравнивания. Также для расчета высоты используется fontHeight() и lineSpacing(), а не высота отдельных символов.

См. также width(), QPainter::boundingRect() и Qt::Alignment.

qreal QFontMetricsF::capHeight() const

Возвращает высоту символа с вершиной шрифта.

Высота символа с вершиной шрифта — это высота заглавной буквы над базовой линией. Это высота заглавных букв, которые плоские — такие как H или I — в отличие от круглых букв, таких как O, или заострённых букв, таких как A, которые могут отображаться с перехлёстом.

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

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

qreal QFontMetricsF::descent() const

Возвращает нисходящую высоту шрифта.

Нисходящая высота — это расстояние от базовой линии до самой низкой позиции, до которой достигают символы. (Обратите внимание, что это отличается от X, который добавляет 1 пиксель.) На практике некоторые дизайнеры шрифтов нарушают это правило, например, чтобы вместить необычный символ в экзотическом языке, поэтому возможно (хотя и редко), что это значение будет слишком малым.

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

QString QFontMetricsF::elidedText(const QString &text, Qt::TextElideMode mode, qreal width, int flags = 0) const

Если строка text шире, чем width, возвращает усечённую версию строки (т.е., строку с "..."). В противном случае возвращает исходную строку.

Параметр mode указывает, усекается ли текст слева (например, "...тех"), посередине (например, "Tr...ch") или справа (например, "Трол...").

width задаётся в пикселях, а не в символах.

Аргумент flags необязателен и в настоящее время поддерживает только Qt::TextShowMnemonic в качестве значения.

Усечение маркера следует за направлением вывода. Например, для правосторонних вывода он будет расположен справа от текста, если mode равен Qt::ElideLeft, и слева от текста, если mode равен Qt::ElideRight.

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

qreal QFontMetricsF::height() const

Возвращает высоту шрифта.

Это всегда равно ascent()+descent().

См. также leading() и lineSpacing().

qreal QFontMetricsF::horizontalAdvance(const QString &text, int length = -1) const

Возвращает горизонтальное продвижение в пикселях первых length символов из text. Если length отрицательно (по умолчанию), используется вся строка.

Продвижение — это расстояние, необходимое для отрисовки последующего символа после text.

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

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

qreal QFontMetricsF::horizontalAdvance(QChar ch) const

Это перегруженный метод.

Bearings

Возвращает горизонтальное продвижение символа ch в пикселях. Эта величина подходит для рисования последующего символа после ch.

Некоторые метрики описаны на рисунке справа. Центральные тёмные прямоугольники охватывают логическую ширину каждого символа. Внешние светлые прямоугольники охватывают leftBearing() и rightBearing() каждого символа. Обратите внимание, что отступы символа «f» в данном шрифте оба отрицательные, в то время как отступы символа «о» оба положительные.

Предупреждение: Эта функция будет выдавать некорректные результаты для арабских символов или неразрывных знаков посредине строки, так как правила форматирования глифов и позиционирования знаков, применяемые при обработке строк, не могут быть учтены. При реализации интерактивного текстового элемента используйте QTextLayout вместо этой функции.

Функция была добавлена в Qt 5.11.

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

bool QFontMetricsF::inFont(QChar ch) const

Возвращает true если символ ch является допустимым символом в шрифте; в противном случае возвращает false.

bool QFontMetricsF::inFontUcs4(uint ch) const

Возвращает true если символ, заданный ch, закодированный в UCS-4/UTF-32, является допустимым символом в шрифте; в противном случае возвращает false.

qreal QFontMetricsF::leading() const

Возвращает отступ шрифта.

Это естественный интерлинейный отступ.

См. также height() и lineSpacing().

qreal QFontMetricsF::leftBearing(QChar ch) const

Возвращает левый отступ символа ch в шрифте.

Левый отступ — это расстояние вправо от левого пикселя символа до логического начала символа. Эта величина отрицательна, если пиксели символа простираются влево от логического начала.

См. width() для графического описания этой метрики.

См. также rightBearing(), minLeftBearing() и width().

qreal QFontMetricsF::lineSpacing() const

Возвращает расстояние от одной базовой линии до следующей.

Это значение всегда равно leading()+height().

См. также height() и leading().

qreal QFontMetricsF::lineWidth() const

Возвращает ширину подчёркивания и линии зачёркивания, скорректированную с учётом размера шрифта.

См. также underlinePos(), overlinePos() и strikeOutPos().

qreal QFontMetricsF::maxWidth() const

Возвращает ширину самого широкого символа в шрифте.

qreal QFontMetricsF::minLeftBearing() const

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

Это наименьший leftBearing(символ) всех символов в шрифте.

Обратите внимание, что эта функция может быть очень медленной для больших шрифтов.

См. также minRightBearing() и leftBearing().

qreal QFontMetricsF::minRightBearing() const

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

Это наименьший rightBearing(символ) всех символов в шрифте.

Обратите внимание, что эта функция может быть очень медленной для больших шрифтов.

См. также minLeftBearing() и rightBearing().

qreal QFontMetricsF::overlinePos() const

Возвращает расстояние от базовой линии до места, где должна быть нарисована надстрочная черта.

См. также underlinePos(), strikeOutPos() и lineWidth().

qreal QFontMetricsF::rightBearing(QChar ch) const

Возвращает правый отступ символа ch в шрифте.

Правый отступ — это расстояние влево от правого пикселя символа до логического начала последующего символа. Это значение отрицательно, если пиксели символа простираются вправо за пределы ширины символа.

См. width() для графического описания этой метрики.

См. также leftBearing(), minRightBearing() и width().

QSizeF QFontMetricsF::size(int flags, const QString &text, int tabStops = 0, int *tabArray = nullptr) const

Возвращает размер в пикселях символов в заданном тексте text.

Аргумент flags — это битовая ИЛИ комбинация следующих флагов:

  • Qt::TextSingleLine игнорирует символы перевода строки.
  • Qt::TextExpandTabs расширяет табуляции (см. ниже)
  • Qt::TextShowMnemonic интерпретирует «&x» как x; т. е. с подчёркиванием.
  • Qt::TextWordWrap переносит текст, чтобы он поместился в прямоугольник.

Эти флаги определены в перечислении Qt::TextFlag.

Если в flags установлен флаг Qt::TextExpandTabs, используется следующее поведение для интерпретации символов табуляции в тексте:

  • Если tabArray не равен null, он задаёт последовательность (заканчивающуюся нулём) позиций табуляции в пикселях.
  • Если tabStops не равно нулю, оно используется как расстояние между табуляциями (в пикселях).

Символы перевода строки обрабатываются как символы перевода строки.

Примечание: Несмотря на разную высоту символов, высота прямоугольников «Да» и «да» одинакова.

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

qreal QFontMetricsF::strikeOutPos() const

Возвращает расстояние от базовой линии до места, где должна быть нарисована линия зачёркивания.

См. также underlinePos(), overlinePos() и lineWidth().

void QFontMetricsF::swap(QFontMetricsF &other)

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

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

QRectF QFontMetricsF::tightBoundingRect(const QString &text) const

Возвращает жёсткий прямоугольник обводки вокруг символов в строке, заданной text. Прямоугольник обводки всегда охватывает как минимум пиксели, которые текст займет, если нарисовать его в (0, 0).

Обратите внимание, что прямоугольник обводки может простираться влево от (0, 0), например, для наклонных шрифтов, и что ширина возвращаемого прямоугольника может отличаться от возвращаемого методом width().

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

Символы перевода строки обрабатываются как обычные символы, а не как символы разрыва строк.

Предупреждение: Вызов этого метода очень медленный в Windows.

Функция была добавлена в Qt 4.3.

См. также width(), height() и boundingRect().

qreal QFontMetricsF::underlinePos() const

Возвращает расстояние от базовой линии до места, где должно быть нарисована черта подчёркивания.

См. также overlinePos(), strikeOutPos() и lineWidth().

qreal QFontMetricsF::xHeight() const

Возвращает высоту «x» шрифта. Часто, но не всегда, совпадает с высотой символа «x».

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

Это перегруженный метод.

Возвращает true если метрики шрифта не равны метрикам шрифта other; в противном случае возвращает false.

См. также operator==().

QFontMetricsF &QFontMetricsF::operator=(const QFontMetricsF &fm)

Присваивает метрики шрифта fm этому объекту метрик шрифта.

QFontMetricsF &QFontMetricsF::operator=(const QFontMetrics &other)

Присваивает other этому объекту.

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

QFontMetricsF &QFontMetricsF::operator=(QFontMetricsF &&other)

Перемещающее присваивание other этому экземпляру QFontMetricsF.

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

Возвращает true, если метрики шрифта равны метрикам шрифта other; в противном случае возвращает false.

Две метрики шрифта считаются равными, если они были созданы из одного и того же QFont, и устройства отрисовки, для которых они были созданы, считаются совместимыми.

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

Spec-Zone.ru

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