Spec-Zone.ru › Qt 5.9

Класс 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 = Q_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
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 = Q_NULLPTR) const
qreal strikeOutPos() const
void swap(QFontMetricsF &other)
QRectF tightBoundingRect(const QString &text) const
qreal underlinePos() const
qreal width(const QString &text) const
qreal width(QChar ch) 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(). Эти функции по необходимости медленные, и мы рекомендуем их избегать, если возможно.

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

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

Пример:

QFont font("times", 24);
QFontMetricsF fm(font);
qreal pixelsWide = fm.width("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. Если 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().

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

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

Высота ограничивающей прямоугольной области не меньше значения, возвращаемого методом 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 = Q_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.

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

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

Обратите внимание, что ограничивающая прямоугольная область может выходить за пределы (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…ч») или справа (например, «Трол…»).

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

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

Отступ для усечения следует направлению текста. Например, он будет находиться справа от текста для текстов справа налево, если mode — Qt::ElideLeft, и слева от текста, если mode — Qt::ElideRight.

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

qreal QFontMetricsF::height() const

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

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

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

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(QChar) для графического описания этой метрики.

См. также 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() символа.

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

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

QSizeF QFontMetricsF::size(int flags, const QString &text, int tabStops = 0, int *tabArray = Q_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().

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

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

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

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

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

qreal QFontMetricsF::underlinePos() const

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

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

qreal QFontMetricsF::width(const QString &text) const

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

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

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

qreal QFontMetricsF::width(QChar ch) const

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

Bearings

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

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

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

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

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/qt-5.9/qfontmetricsf.html

Spec-Zone.ru

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