Spec-Zone.ru › Qt 6.1

Класс QFont

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

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

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

Типы публичного доступа

перечисление Capitalization { MixedCase, AllUppercase, AllLowercase, SmallCaps, Capitalize }
перечисление HintingPreference { PreferDefaultHinting, PreferNoHinting, PreferVerticalHinting, PreferFullHinting }
перечисление SpacingType { PercentageSpacing, AbsoluteSpacing }
перечисление Stretch { AnyStretch, UltraCondensed, ExtraCondensed, Condensed, SemiCondensed, …, UltraExpanded }
перечисление Стиль { StyleNormal, StyleItalic, StyleOblique }
перечисление StyleHint { AnyStyle, SansSerif, Helvetica, Serif, Times, …, System }
перечисление StyleStrategy { PreferDefault, PreferBitmap, PreferDevice, PreferOutline, ForceOutline, …, PreferQuality }
перечисление Вес { Thin, ExtraLight, Light, Normal, Medium, …, Black }

Публичные функции

QFont(const QFont &font)
QFont(const QFont &font, const QPaintDevice *pd)
QFont(const QStringList &families, int pointSize = -1, int weight = -1, bool italic = false)
QFont()
QFont & operator=(QFont &&other)
QFont & operator=(const QFont &font)
~QFont()
bool bold() const
QFont::Capitalization capitalization() const
QString defaultFamily() const
bool exactMatch() const
QStringList families() const
QString family() const
bool fixedPitch() const
bool fromString(const QString &descrip)
QFont::HintingPreference hintingPreference() const
bool isCopyOf(const QFont &f) const
bool italic() const
bool kerning() const
QString key() const
qreal letterSpacing() const
QFont::SpacingType letterSpacingType() const
bool overline() const
int pixelSize() const
int pointSize() const
qreal pointSizeF() const
QFont resolve(const QFont &other) const
void setBold(bool enable)
void setCapitalization(QFont::Capitalization caps)
void setFamilies(const QStringList &families)
void setFamily(const QString &family)
void setFixedPitch(bool enable)
void setHintingPreference(QFont::HintingPreference hintingPreference)
void setItalic(bool enable)
void setKerning(bool enable)
void setLetterSpacing(QFont::SpacingType type, qreal spacing)
void setOverline(bool enable)
void setPixelSize(int pixelSize)
void setPointSize(int pointSize)
void setPointSizeF(qreal pointSize)
void setStretch(int factor)
void setStrikeOut(bool enable)
void setStyle(QFont::Style style)
void setStyleHint(QFont::StyleHint hint, QFont::StyleStrategy strategy = PreferDefault)
void setStyleName(const QString &styleName)
void setStyleStrategy(QFont::StyleStrategy s)
void setUnderline(bool enable)
void setWeight(QFont::Weight weight)
void setWordSpacing(qreal spacing)
int stretch() const
bool strikeOut() const
QFont::Style style() const
QFont::StyleHint styleHint() const
QString styleName() const
QFont::StyleStrategy styleStrategy() const
void swap(QFont &other)
QString toString() const
bool underline() const
QFont::Weight weight() const
qreal wordSpacing() const
QVariant operator QVariant() const
bool operator!=(const QFont &f) const
bool operator<(const QFont &f) const
bool operator==(const QFont &f) const

Статические публичные члены

void insertSubstitution(const QString &familyName, const QString &substituteName)
void insertSubstitutions(const QString &familyName, const QStringList &substituteNames)
void removeSubstitutions(const QString &familyName)
QString substitute(const QString &familyName)
QStringList substitutes(const QString &familyName)
QStringList substitutions()

Related Non-Members

size_t qHash(const QFont &font, size_t seed = 0)
QDataStream & operator<<(QDataStream &s, const QFont &font)
QDataStream & operator>>(QDataStream &s, QFont &font)

Detailed Description

QFont можно рассматривать как запрос к одному или нескольким шрифтам в системе.

При создании объекта QFont вы указываете различные атрибуты, которые должен иметь шрифт. Qt будет использовать шрифт с указанными атрибутами, или если подходящий шрифт не найден, Qt будет использовать наиболее подходящий установленный шрифт. Атрибуты фактически используемого шрифта можно получить из объекта QFontInfo. Если система окон предоставляет точное совпадение, exactMatch() возвращает true. Используйте QFontMetricsF для получения размеров, например, длины строки в пикселях с помощью QFontMetrics::width().

Атрибуты, которые не заданы явно, не повлияют на алгоритм выбора шрифта, и вместо этого будут использованы значения по умолчанию.

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

Обратите внимание, что экземпляр QGuiApplication должен существовать перед использованием QFont. Вы можете установить шрифт по умолчанию для приложения с помощью QGuiApplication::setFont().

Если выбранный шрифт не содержит всех символов, которые необходимо отобразить, QFont попытается найти символы в ближайших эквивалентных шрифтах. Когда QPainter рисует символ из шрифта, QFont сообщит, есть ли у него этот символ; если нет, QPainter нарисует незаполненный квадрат.

Создавайте QFonts так:

QFont serifFont("Times", 10, QFont::Bold);
QFont sansFont("Helvetica [Cronyx]", 12);

Атрибуты, заданные в конструкторе, также можно задать позже, например, setFamily(), setPointSize(), setPointSizeF(), setWeight() и setItalic(). Остальные атрибуты необходимо задавать после создания, например, setBold(), setUnderline(), setOverline(), setStrikeOut() и setFixedPitch(). Объекты QFontInfo следует создавать после установки атрибутов шрифта. Объект QFontInfo не будет изменяться, даже если вы измените атрибуты шрифта. Соответствующие функции «get», например, family(), pointSize() и т. д., возвращают значения, которые были установлены, даже если фактически используемые значения могут отличаться. Фактические значения доступны из объекта QFontInfo.

Если запрошенная семейство шрифтов недоступна, вы можете повлиять на алгоритм подбора шрифтов, выбрав определённый QFont::StyleHint и QFont::StyleStrategy с помощью setStyleHint(). Семейство шрифтов по умолчанию (соответствующее текущему параметру стиля) возвращается методом defaultFamily().

Вы можете предоставить замены для имён семейств шрифтов, используя insertSubstitution() и insertSubstitutions(). Замены можно удалить с помощью removeSubstitutions(). Используйте substitute(), чтобы получить первый заменитель семейства шрифтов, или само имя семейства, если у него нет замен. Используйте substitutes(), чтобы получить список замен семейства (который может быть пустым). После замены шрифта необходимо обновить шрифт, уничтожив и пересоздав все объекты QFont.

Каждый QFont имеет ключ(), который вы можете использовать, например, в качестве ключа в кэше или словаре. Если вы хотите сохранить настройки шрифта пользователя, вы можете использовать QSettings, записывая информацию о шрифте с помощью toString() и читая её обратно с помощью fromString(). Также доступны операторы << и >>, но они работают с потоком данных.

Можно задать высоту символов, отображаемых на экране, в определённом количестве пикселей с помощью setPixelSize(); однако использование setPointSize() имеет аналогичный эффект и обеспечивает независимость от устройства.

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

Алгоритм подбора шрифтов работает следующим образом:

  1. Производится поиск указанных семейств шрифтов (заданных методом setFamilies()).
  2. Если не найдены, затем, если задано, проверяется, существует ли указанное семейство шрифтов и можно ли использовать его для представления используемой письменности, и оно будет выбрано.
  3. В противном случае выбирается резервный шрифт, поддерживающий используемую письменность. Алгоритм подбора шрифтов постарается найти наилучшее соответствие всем свойствам, заданным в QFont. Способ выполнения этого отличается в зависимости от платформы.
  4. Если в системе нет шрифта, который может поддерживать текст, вместо него будут отображаться специальные пустые «боксы» для отсутствующих символов.

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

В Windows запрос шрифта «Courier» автоматически изменяется на «Courier New», улучшенную версию Courier, которая позволяет плавную масштабирование. Более старый шрифт «Courier» в формате растровых изображений можно выбрать, установив стратегию стиля PreferBitmap (см. setStyleStrategy()).

После того как шрифт найден, остальные атрибуты сопоставляются в порядке приоритета:

  1. fixedPitch()
  2. pointSize() (см. ниже)
  3. weight()
  4. style()

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

Размер шрифта определяется как соответствующий, если он находится в пределах 20% от запрошенного размера шрифта. Когда несколько шрифтов совпадают и отличаются только размером, шрифт с размером, наиболее близким к запрошенному, будет выбран.

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

Примеры:

QFont f("Helvetica");

Если у вас есть как Adobe, так и Cronyx Helvetica, вы можете получить любой из них.

QFont f("Helvetica [Cronyx]");

Вы можете указать требуемый производитель в имени семейства. Шрифт f в приведенном выше примере будет установлен на "Helvetica [Cronyx]".

Для определения атрибутов шрифта, фактически используемого в системе окон, используйте объект QFontInfo, например:

QFontInfo info(f1);
QString family = info.family();

Для поиска метрик шрифта используйте объект QFontMetrics, например:

QFontMetrics fm(f1);
int textWidthInPixels = fm.horizontalAdvance("How many pixels wide is this text?");
int textHeightInPixels = fm.height();

Для более подробной информации о шрифтах, см. ком. FAQ по шрифтам. Информация об кодировках доступна на странице Романа Чиборра.

См. также QFontMetrics, QFontInfo, QFontDatabase и Пример карты символов.

Member Type Documentation

enum QFont::Capitalization

Параметр рендеринга текста, к которому применяется этот шрифт.

Постоянная Значение Описание
QFont::MixedCase 0 Это обычный параметр рендеринга текста, где не применяется изменение регистров.
QFont::AllUppercase 1 Это изменяет текст, чтобы он отображался заглавными буквами.
QFont::AllLowercase 2 Это изменяет текст, чтобы он отображался строчными буквами.
QFont::SmallCaps 3 Это изменяет текст, чтобы он отображался полужирными заглавными буквами (small caps).
QFont::Capitalize 4 Это изменяет текст, чтобы первая буква каждого слова отображалась заглавной.

enum QFont::HintingPreference

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

Константа Значение Описание
QFont::PreferDefaultHinting 0 Используется уровень подсказок по умолчанию для целевой платформы.
QFont::PreferNoHinting 1 Если возможно, отображает текст без подсказок контуров глифов. Макет текста будет типографически точным и масштабируемым, используя те же метрики, что и, например, при печати.
QFont::PreferVerticalHinting 2 Если возможно, отображает текст без горизонтальных подсказок, но выравнивает глифы к пиксельной сетке по вертикали. Текст будет казаться более четким на дисплеях, где плотность недостаточна для точного отображения глифов. Но поскольку горизонтальные метрики глифов не подсказываются, макет текста будет масштабироваться до устройств с большей плотностью (например, принтеров) без влияния на такие детали, как переносы строк.
QFont::PreferFullHinting 3 Если возможно, отображает текст с подсказками как по горизонтали, так и по вертикали. Текст будет изменён для оптимизации читаемости на целевом устройстве, но так как метрики будут зависеть от целевого размера текста, позиции глифов, переносы строк и другие типографические детали не будут масштабироваться, что означает, что макет текста может выглядеть по-разному на устройствах с различной плотностью пикселей.

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

PreferDefaultHinting PreferNoHinting PreferVerticalHinting PreferFullHinting
Windows Vista (без обновления платформы) и более ранние версии Полные подсказки Полные подсказки Полные подсказки Полные подсказки
Windows 7 и Windows Vista (с обновлением платформы) и DirectWrite, включенный в Qt Полные подсказки Вертикальные подсказки Вертикальные подсказки Полные подсказки
FreeType Настройка операционной системы Без подсказок Вертикальные подсказки (лёгкие) Полные подсказки
Cocoa на macOS Без подсказок Без подсказок Без подсказок Без подсказок

Примечание: Обратите внимание, что изменение предпочтения подсказок в Windows доступно через движок шрифтов DirectWrite. Он доступен в Windows Vista после установки обновления платформы и в Windows 7. Для использования этого расширения, настройте Qt с помощью -directwrite. Затем целевое приложение будет зависеть от наличия DirectWrite на целевой системе.

enum QFont::SpacingType

Константа Значение Описание
QFont::PercentageSpacing 0 Значение 100 сохранит интервалы неизменными; значение 200 увеличит интервалы после символа на ширину самого символа.
QFont::AbsoluteSpacing 1 Положительное значение увеличивает межбуквенный интервал на соответствующее количество пикселей; отрицательное значение уменьшает интервал.

enum QFont::Stretch

Предопределенные значения растяжения, следующие соглашению об именовании CSS. Чем больше значение, тем сильнее растягивается текст.

Константа Значение Описание
QFont::AnyStretch 0 0 Принимает любое растяжение, соответствующее другим свойствам QFont (добавлено в Qt 5.8)
QFont::UltraCondensed 50 50
QFont::ExtraCondensed 62 62
QFont::Condensed 75 75
QFont::SemiCondensed 87 87
QFont::Unstretched 100 100
QFont::SemiExpanded 112 112
QFont::Expanded 125 125
QFont::ExtraExpanded 150 150
QFont::UltraExpanded 200 200

См. также setStretch() и stretch().

enum QFont::Style

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

Константа Значение Описание
QFont::StyleNormal 0 Обычные глифы, используемые в нестилизованном тексте.
QFont::StyleItalic 1 Курсивные глифы, специально разработанные для представления курсивного текста.
QFont::StyleOblique 2 Глифы с курсивным видом, обычно основанные на нестилизованных глифах, но не оптимизированные для представления курсивного текста.

См. также Weight.

enum QFont::StyleHint

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

Константа Значение Описание
QFont::AnyStyle 5 Позволяет алгоритму подбора шрифтов выбрать гарнитуру. Это значение по умолчанию.
QFont::SansSerif Helvetica Алгоритм подбора шрифтов отдаёт предпочтение гарнитурам без засечек.
QFont::Helvetica 0 Синоним для SansSerif.
QFont::Serif Times Алгоритм подбора шрифтов отдаёт предпочтение гарнитурам с засечками.
QFont::Times 1 Синоним для Serif.
QFont::TypeWriter Courier Алгоритм подбора шрифтов отдаёт предпочтение гарнитурам с фиксированным кеглем.
QFont::Courier 2 Синоним для TypeWriter.
QFont::OldEnglish 3 Алгоритм подбора шрифтов отдаёт предпочтение декоративным гарнитурам.
QFont::Decorative OldEnglish Синоним для OldEnglish.
QFont::Monospace 7 Алгоритм подбора шрифтов отдаёт предпочтение шрифтам, соответствующим CSS-генерической гарнитуре 'monospace'.
QFont::Fantasy 8 Алгоритм подбора шрифтов отдаёт предпочтение шрифтам, соответствующим CSS-генерической гарнитуре 'fantasy'.
QFont::Cursive 6 Алгоритм подбора шрифтов отдаёт предпочтение шрифтам, соответствующим CSS-генерической гарнитуре 'cursive'.
QFont::System 4 Алгоритм подбора шрифтов отдаёт предпочтение системным шрифтам.

enum QFont::StyleStrategy

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

Доступны следующие стратегии:

Постоянная Значение Описание
QFont::PreferDefault 0x0001 стандартная стратегия стиля. Она не предпочитает никакой тип шрифта.
QFont::PreferBitmap 0x0002 предпочитает растровые шрифты (в отличие от контурных).
QFont::PreferDevice 0x0004 предпочитает шрифты устройства.
QFont::PreferOutline 0x0008 предпочитает контурные шрифты (в отличие от растровых).
QFont::ForceOutline 0x0010 принудительно использует контурные шрифты.
QFont::NoAntialias 0x0100 не применять сглаживание шрифтов.
QFont::NoSubpixelAntialias 0x0800 избегать субпиксельного сглаживания шрифтов, если это возможно.
QFont::PreferAntialias 0x0080 применять сглаживание, если возможно.
QFont::NoFontMerging 0x8000 Если выбранный для определенной письменности шрифт не содержит символа, который требуется нарисовать, Qt автоматически выбирает похожий шрифт, содержащий этот символ. Флаг NoFontMerging отключает эту функцию. Обратите внимание, что включение этого флага не предотвратит Qt от автоматического выбора подходящего шрифта, когда выбранный шрифт не поддерживает письменность текста.
QFont::PreferNoShaping 0x1000 Иногда шрифт применяет сложные правила к набору символов для их правильного отображения. В некоторых системах письма, таких как брахмические письмена, это необходимо для удобочитаемости текста, но в, например, латинском письме это всего лишь косметическая функция. Флаг PreferNoShaping отключит все такие функции, когда они не нужны, что в большинстве случаев улучшит производительность (с Qt 5.10).

Любой из этих флагов может быть объединён с одним из этих флагов:

Постоянная Значение Описание
QFont::PreferMatch 0x0020 предпочитать точное совпадение. Поисковик шрифтов будет пытаться использовать точно указанный размер шрифта.
QFont::PreferQuality 0x0040 предпочитать шрифт наилучшего качества. Поисковик шрифтов будет использовать ближайший стандартный размер точки, который поддерживается шрифтом.

перечисление QFont::Weight

Qt использует шкалу весов от 1 до 1000, совместимую с OpenType. Величина 1 будет тонкой, а 1000 — чрезвычайно жирной.

Это перечисление содержит предопределённые веса шрифтов:

Постоянная Значение Описание
QFont::Thin 100 100
QFont::ExtraLight 200 200
QFont::Light 300 300
QFont::Normal 400 400
QFont::Medium 500 500
QFont::DemiBold 600 600
QFont::Bold 700 700
QFont::ExtraBold 800 800
QFont::Black 900 900

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

QFont::QFont(const QFont &font)

Создаёт шрифт, являющийся копией font.

[since 5.13] QFont::QFont(const QFont &font, const QPaintDevice *pd)

Создаёт шрифт из font для использования на устройстве рисования pd.

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

QFont::QFont(const QStringList &families, int pointSize = -1, int weight = -1, bool italic = false)

Создаёт объект шрифта со значениями families, pointSize, weight и italic.

Если pointSize равно нулю или отрицательно, размер шрифта устанавливается в значение по умолчанию, зависящее от системы. Обычно это 12 пунктов.

Каждое имя семейства в families может необязательно также включать имя производителя, например, "Helvetica [Cronyx]". Если семейство доступно от более чем одного производителя, а производитель не указан, выбирается произвольный производитель. Если семейство недоступно, семейство будет установлено с использованием алгоритма сопоставления шрифтов.

См. также Weight, setPointSize(), setWeight(), setItalic(), setStyleHint(), setFamilies() и QGuiApplication::font().

QFont::QFont()

Создаёт объект шрифта, который использует шрифт по умолчанию приложения.

См. также QGuiApplication::setFont() и QGuiApplication::font().

[since 5.2] QFont &QFont::operator=(QFont &&other)

Перемещает other в этот экземпляр QFont.

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

QFont &QFont::operator=(const QFont &font)

Присваивает font этому шрифту и возвращает ссылку на него.

QFont::~QFont()

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

bool QFont::bold() const

Возвращает true, если weight() больше, чем QFont::Medium; в противном случае возвращает false.

См. также weight(), setBold() и QFontInfo::bold().

QFont::Capitalization QFont::capitalization() const

Возвращает текущий тип капитализации шрифта.

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

QString QFont::defaultFamily() const

Возвращает имя семейства шрифтов, соответствующее текущему стилю.

См. также StyleHint, styleHint() и setStyleHint().

bool QFont::exactMatch() const

Возвращает true, если на устройстве есть шрифт, точно соответствующий настройкам этого шрифта.

См. также QFontInfo.

[since 5.13] QStringList QFont::families() const

Возвращает запрошенные имена семейств шрифтов, т.е. имена, установленные в последнем вызове setFamilies() или через конструктор. В противном случае возвращает пустой список.

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

См. также setFamily(), setFamilies(), family(), substitutes() и substitute().

QString QFont::family() const

Возвращает запрошенное имя семейства шрифтов. Оно всегда будет таким же, как и первое значение в вызове families().

См. также setFamily(), substitutes(), substitute(), setFamilies() и families().

bool QFont::fixedPitch() const

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

См. также setFixedPitch() и QFontInfo::fixedPitch().

bool QFont::fromString(const QString &descrip)

Устанавливает этот шрифт, соответствующий описанию descrip. Описание — это список атрибутов шрифта, разделённых запятыми, как возвращается функцией toString().

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

END_OF_DOCUMENT_MARKER

QFont::HintingPreference QFont::hintingPreference() const

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

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

[static] void QFont::insertSubstitution(const QString &familyName, const QString &substituteName)

Вставляет substituteName в таблицу подстановок для семейства familyName.

После замены шрифта запустите обновление шрифта, уничтожив и повторно создав все объекты QFont.

См. также insertSubstitutions(), removeSubstitutions(), substitutions(), substitute() и substitutes().

[static] void QFont::insertSubstitutions(const QString &familyName, const QStringList &substituteNames)

Вставляет список семейств substituteNames в список подстановок для familyName.

После замены шрифта запустите обновление шрифта, уничтожив и повторно создав все объекты QFont.

См. также insertSubstitution(), removeSubstitutions(), substitutions() и substitute().

bool QFont::isCopyOf(const QFont &f) const

Возвращает true , если этот шрифт и f являются копиями друг друга, т.е. один из них был создан как копия другого, и ни один из них не был изменён с тех пор. Это гораздо строже, чем равенство.

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

bool QFont::italic() const

Возвращает true , если стиль (style()) шрифта не равен QFont::StyleNormal

См. также setItalic() и style().

bool QFont::kerning() const

Возвращает true , если кернинг должен использоваться при отрисовке текста этим шрифтом.

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

QString QFont::key() const

Возвращает ключ шрифта, текстовое представление шрифта. Обычно используется в качестве ключа для кэша или словаря шрифтов.

См. также QMap.

qreal QFont::letterSpacing() const

Возвращает межбуквенный интервал для шрифта.

См. также setLetterSpacing(), letterSpacingType() и setWordSpacing().

QFont::SpacingType QFont::letterSpacingType() const

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

См. также letterSpacing(), setLetterSpacing() и setWordSpacing().

bool QFont::overline() const

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

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

int QFont::pixelSize() const

Возвращает размер шрифта в пикселях, если он был задан с помощью setPixelSize(). Возвращает -1, если размер был задан с помощью setPointSize() или setPointSizeF().

См. также setPixelSize(), pointSize(), QFontInfo::pointSize() и QFontInfo::pixelSize().

int QFont::pointSize() const

Возвращает размер шрифта в пунктах. Возвращает -1, если размер шрифта был задан в пикселях.

См. также setPointSize() и pointSizeF().

qreal QFont::pointSizeF() const

Возвращает размер шрифта в пунктах. Возвращает -1, если размер шрифта был задан в пикселях.

См. также pointSize(), setPointSizeF(), pixelSize(), QFontInfo::pointSize() и QFontInfo::pixelSize().

[static, since 5.0] void QFont::removeSubstitutions(const QString &familyName)

Удаляет все подстановки для familyName.

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

См. также insertSubstitutions(), insertSubstitution(), substitutions() и substitute().

QFont QFont::resolve(const QFont &other) const

Возвращает новый QFont, содержащий атрибуты из other, которые не были ранее установлены в этом шрифте.

void QFont::setBold(bool enable)

Если enable равно true, устанавливает вес шрифта в QFont::Bold; в противном случае устанавливает вес в QFont::Normal.

Для более точного управления жирностью используйте setWeight().

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

См. также bold() и setWeight().

void QFont::setCapitalization(QFont::Capitalization caps)

Устанавливает регистр текста в этом шрифте в caps.

Регистр шрифта обеспечивает отображение текста в выбранном режиме.

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

[since 5.13] void QFont::setFamilies(const QStringList &families)

Устанавливает список имён семейств шрифтов. Имена нечувствительны к регистру и могут включать имя типографии. Первое семейство в families будет установлено как основное семейство шрифта.

Каждая запись семейства в families может необязательно также включать имя типографии, например, «Helvetica [Cronyx]». Если семейство доступно из более чем одной типографии и типография не указана, выбирается произвольная типография. Если семейство недоступно, семейство будет установлено с использованием алгоритма сопоставления шрифтов.

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

См. также family(), families(), setFamily(), setStyleHint() и QFontInfo.

void QFont::setFamily(const QString &family)

Устанавливает имя семейства шрифта. Имя нечувствительно к регистру и может включать имя типографии.

Имя family может необязательно также включать имя типографии, например, «Helvetica [Cronyx]». Если family доступно из более чем одной типографии и типография не указана, выбирается произвольная типография. Если семейство недоступно, семейство будет установлено с использованием алгоритма сопоставления шрифтов.

Это разделит строку family по запятой и вызовет setFamilies() со списком результатов. Чтобы сохранить шрифт, использующий запятую в своём имени, используйте setFamilies() напрямую. Начиная с Qt 6.2, это поведение больше не будет происходить, и family будет передаваться как единое семейство.

См. также family(), setStyleHint(), setFamilies(), families() и QFontInfo.

void QFont::setFixedPitch(bool enable)

Если enable равно true, устанавливает фиксированный интервал на включение; в противном случае выключает.

См. также fixedPitch() и QFontInfo.

void QFont::setHintingPreference(QFont::HintingPreference hintingPreference)

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

По умолчанию используется QFont::PreferDefaultHinting.

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

void QFont::setItalic(bool enable)

Устанавливает стиль() шрифта в QFont::StyleItalic, если enable имеет значение true; в противном случае стиль устанавливается в QFont::StyleNormal.

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

См. также italic() и QFontInfo.

void QFont::setKerning(bool enable)

Включает кернинг для этого шрифта, если enable имеет значение true; в противном случае отключает его. По умолчанию кернинг включен.

При включенном кернинге метрики глифов больше не суммируются, даже для латинского текста. Другими словами, предположение, что width('a') + width('b') равно width("ab"), не обязательно верно.

См. также kerning() и QFontMetrics.

void QFont::setLetterSpacing(QFont::SpacingType type, qreal spacing)

Устанавливает интерлитерный пробел для шрифта в значение spacing и тип интерлитерного пробела в type.

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

См. также letterSpacing(), letterSpacingType() и setWordSpacing().

void QFont::setOverline(bool enable)

Если enable имеет значение true, то устанавливается черта сверху; в противном случае черта сверху отключается.

См. также overline() и QFontInfo.

void QFont::setPixelSize(int pixelSize)

Устанавливает размер шрифта в pixelSize пикселей.

Использование этой функции делает шрифт зависимым от устройства. Используйте setPointSize() или setPointSizeF(), чтобы установить размер шрифта независимо от устройства.

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

void QFont::setPointSize(int pointSize)

Устанавливает размер шрифта в pointSize пунктов. Размер шрифта должен быть больше нуля.

См. также pointSize() и setPointSizeF().

void QFont::setPointSizeF(qreal pointSize)

Устанавливает размер шрифта в pointSize пунктов. Размер шрифта должен быть больше нуля. Запрошенная точность может не быть достигнута на всех платформах.

См. также pointSizeF(), setPointSize() и setPixelSize().

void QFont::setStretch(int factor)

Устанавливает коэффициент растяжения для шрифта.

Коэффициент растяжения соответствует уплотнённой или расширенной версии шрифта или применяет преобразование растяжения, которое изменяет ширину всех символов в шрифте на factor процентов. Например, установка factor в 150 приведет к тому, что все символы в шрифте будут в 1,5 раза (т. е. на 150%) шире. Минимальный коэффициент растяжения равен 1, а максимальный — 4000. По умолчанию коэффициент растяжения равен AnyStretch, что примет любой коэффициент растяжения и не применит никакого преобразования к шрифту.

Коэффициент растяжения применяется только к контурным шрифтам. Коэффициент растяжения игнорируется для растровых шрифтов.

Примечание: При сопоставлении шрифта с нативным коэффициентом растяжения по умолчанию, запрос на растяжение 100 вернёт его к среднему шрифту.

См. также stretch() и QFont::Stretch.

void QFont::setStrikeOut(bool enable)

Если enable имеет значение true, то устанавливается перечеркивание; в противном случае перечеркивание отключается.

См. также strikeOut() и QFontInfo.

void QFont::setStyle(QFont::Style style)

Устанавливает стиль шрифта в style.

См. также style(), italic() и QFontInfo.

void QFont::setStyleHint(QFont::StyleHint hint, QFont::StyleStrategy strategy = PreferDefault)

Устанавливает подсказку стиля и стратегию соответственно в hint и strategy.

Если они не установлены явно, подсказка стиля будет по умолчанию AnyStyle, а стратегия стиля — PreferDefault.

Qt не поддерживает подсказки стиля на X11, так как эта информация не предоставляется системой окон.

См. также StyleHint, styleHint(), StyleStrategy, styleStrategy() и QFontInfo.

void QFont::setStyleName(const QString &styleName)

Устанавливает имя стиля шрифта в styleName. При установке другие свойства стиля, такие как style() и weight(), будут игнорироваться при подборе шрифта, хотя они могут быть смоделированы позже, если это поддерживается движком шрифтов платформы.

Из-за более низкого качества искусственно моделируемых стилей и отсутствия полной кроссплатформенной поддержки не рекомендуется использовать сопоставление по имени стиля вместе с сопоставлением по свойствам стиля.

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

void QFont::setStyleStrategy(QFont::StyleStrategy s)

Устанавливает стратегию стиля для шрифта в s.

См. также styleStrategy() и QFont::StyleStrategy.

void QFont::setUnderline(bool enable)

Если enable имеет значение true, то устанавливается подчеркивание; в противном случае подчеркивание отключается.

См. также underline() и QFontInfo.

void QFont::setWeight(QFont::Weight weight)

Устанавливает вес шрифта в weight, используя шкалу, определённую перечислением QFont::Weight.

Примечание: Если styleName() установлено, это значение может быть проигнорировано при выборе шрифта.

См. также weight() и QFontInfo.

void QFont::setWordSpacing(qreal spacing)

Устанавливает интерслововой пробел для шрифта в spacing.

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

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

См. также wordSpacing() и setLetterSpacing().

int QFont::stretch() const

Возвращает коэффициент растяжения шрифта.

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

bool QFont::strikeOut() const

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

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

QFont::Style QFont::style() const

Возвращает стиль шрифта.

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

QFont::StyleHint QFont::styleHint() const

Возвращает StyleHint.

Подсказка стиля влияет на алгоритм подбора шрифтов. Список доступных подсказок см. в QFont::StyleHint.

См. также setStyleHint(), QFont::StyleStrategy и QFontInfo::styleHint().

QString QFont::styleName() const

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

См. также setStyleName(), setFamily() и setStyle().

QFont::StyleStrategy QFont::styleStrategy() const

Возвращает StyleStrategy.

Стратегия стиля влияет на алгоритм подбора шрифтов. Список доступных стратегий см. в QFont::StyleStrategy.

См. также setStyleStrategy(), setStyleHint() и QFont::StyleHint.

[static] QString QFont::substitute(const QString &familyName)

Возвращает имя первой семьи шрифтов, которое используется всякий раз, когда указано familyName. Поиск нечувствителен к регистру.

Если для familyName нет замены, возвращается familyName.

Чтобы получить список замен, используйте substitutes().

См. также setFamily(), insertSubstitutions(), insertSubstitution() и removeSubstitutions().

[static] QStringList QFont::substitutes(const QString &familyName)

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

Если для familyName нет замены, возвращается пустой список.

См. также substitute(), insertSubstitutions(), insertSubstitution() и removeSubstitutions().

[static] QStringList QFont::substitutions()

Возвращает отсортированный список заменённых имён семейств шрифтов.

См. также insertSubstitution(), removeSubstitutions() и substitute().

[since 5.0] void QFont::swap(QFont &other)

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

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

QString QFont::toString() const

Возвращает описание шрифта. Описание — это список атрибутов, разделённых запятыми, идеально подходящий для использования в QSettings, и состоит из следующего:

  • Семейство шрифтов
  • Размер в пунктах
  • Размер в пикселях
  • Стиль шрифта
  • Начертание
  • Стиль шрифта
  • Подчёркивание
  • Зачеркнутый
  • Фиксированный интервал
  • Всегда 0
  • Регистр
  • Межбуквенное расстояние
  • Межсловное расстояние
  • Вытяжка
  • Стратегия стиля
  • Стиль шрифта (опускается, когда недоступен)

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

bool QFont::underline() const

Возвращает true если подчёркивание установлено; в противном случае возвращает false.

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

QFont::Weight QFont::weight() const

Возвращает начертание шрифта, используя ту же шкалу, что и перечисление QFont::Weight.

См. также setWeight(), Weight и QFontInfo.

qreal QFont::wordSpacing() const

Возвращает межсловное расстояние для шрифта.

См. также setWordSpacing() и setLetterSpacing().

QVariant QFont::operator QVariant() const

Возвращает шрифт как QVariant.

bool QFont::operator!=(const QFont &f) const

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

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

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

bool QFont::operator<(const QFont &f) const

Обеспечивает произвольное сравнение этого шрифта и шрифта f. Всё, что гарантируется, это то, что оператор возвращает false если оба шрифта равны, и что (f1 < f2) == !(f2 < f1), если шрифты не равны.

Эта функция полезна в некоторых ситуациях, например, если вы хотите использовать объекты QFont в качестве ключей в QMap.

См. также operator==(), operator!=() и isCopyOf().

bool QFont::operator==(const QFont &f) const

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

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

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

Связанные нечлен-функции

[since 5.3] size_t qHash(const QFont &font, size_t seed = 0)

Возвращает значение хэша для font. Если указано, seed используется для инициализации хэша.

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

QDataStream &operator<<(QDataStream &s, const QFont &font)

Записывает шрифт font в поток данных s. (toString() записывает в текстовый поток.)

См. также Формат операторов QDataStream.

QDataStream &operator>>(QDataStream &s, QFont &font)

Считывает шрифт font из потока данных s. (fromString() считывает из текстового потока.)

См. также Формат операторов QDataStream.

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

Spec-Zone.ru

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