Класс 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 и кешировать результаты медленных функций системы окон, от которых он зависит.
Алгоритм подбора шрифтов работает следующим образом:
- Производится поиск указанных семейств шрифтов (заданных методом setFamilies()).
- Если не найдены, затем, если задано, проверяется, существует ли указанное семейство шрифтов и можно ли использовать его для представления используемой письменности, и оно будет выбрано.
- В противном случае выбирается резервный шрифт, поддерживающий используемую письменность. Алгоритм подбора шрифтов постарается найти наилучшее соответствие всем свойствам, заданным в QFont. Способ выполнения этого отличается в зависимости от платформы.
- Если в системе нет шрифта, который может поддерживать текст, вместо него будут отображаться специальные пустые «боксы» для отсутствующих символов.
Примечание: Если выбранный шрифт, хотя и поддерживает письменность в целом, отсутствуют глифы для одного или нескольких конкретных символов, то Qt попытается найти резервный шрифт для этого или этих конкретных символов. Эту функцию можно отключить, используя стратегию стиля QFont::NoFontMerging.
В Windows запрос шрифта «Courier» автоматически изменяется на «Courier New», улучшенную версию Courier, которая позволяет плавную масштабирование. Более старый шрифт «Courier» в формате растровых изображений можно выбрать, установив стратегию стиля PreferBitmap (см. setStyleStrategy()).
После того как шрифт найден, остальные атрибуты сопоставляются в порядке приоритета:
- fixedPitch()
- pointSize() (см. ниже)
- weight()
- 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_MARKERQFont::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