Класс 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 } |
| Перечисление | Style { StyleNormal, StyleItalic, StyleOblique } |
| Перечисление | StyleHint { AnyStyle, SansSerif, Helvetica, Serif, Times, …, System } |
| Перечисление | StyleStrategy { PreferDefault, PreferBitmap, PreferDevice, PreferOutline, ForceOutline, …, PreferQuality } |
| Перечисление | Weight { Thin, ExtraLight, Light, Normal, Medium, …, Black } |
Публичные функции
| QFont(const QFont &font) | |
| QFont(const QFont &font, const QPaintDevice *pd) | |
| QFont(const QString &family, 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(). Функции operator<<() и operator>>() также доступны, но они работают с потоком данных.
Можно установить высоту символов, отображаемых на экране, в заданное число пикселей с помощью 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 comp.fonts. Информацию о кодировках можно найти на странице Романа Чыборры.
См. также QFontMetrics, QFontInfo, QFontDatabase и Пример диалогового окна «Таблица символов».
Документация типов членов
enum QFont::Capitalization
Параметр отображения текста, который применяется к этому шрифту.
| Константа | Значение | Описание |
|---|---|---|
QFont::MixedCase |
0 |
Это обычный параметр отображения текста, где не применяется изменение регистров. |
QFont::AllUppercase |
1 |
Это изменяет текст на все прописные буквы. |
QFont::AllLowercase |
2 |
Это изменяет текст на все строчные буквы. |
QFont::SmallCaps |
3 |
Это изменяет текст на полужирный регистр. |
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 QString &family, int pointSize = -1, int weight = -1, bool italic = false)
Создаёт объект шрифта с заданными параметрами family, pointSize, weight и italic.
Если pointSize равно нулю или отрицательно, размер шрифта устанавливается в зависимом от системы значении по умолчанию. Обычно это 12 пунктов.
Имя family может необязательно также включать имя литейного производства, например, "Helvetica [Cronyx]". Если семейство family доступно от нескольких производителей, а имя производителя не указано, выбирается произвольное имя производителя. Если семейство недоступно, семейство будет установлено с помощью алгоритма подбора шрифтов font matching.
См. также Weight, setFamily(), setPointSize(), setWeight(), setItalic(), setStyleHint() и 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
Возвращает имя запрошенного семейства шрифтов, т. е. имя, заданное в конструкторе или в последнем вызове setFont().
См. также setFamily(), substitutes() и substitute().
bool QFont::fixedPitch() const
Возвращает true если фиксированный шаг установлен; в противном случае возвращает false.
См. также setFixedPitch() и QFontInfo::fixedPitch().
bool QFont::fromString(const QString &descrip)
Устанавливает этот шрифт, чтобы соответствовать описанию descrip. Описание — это список атрибутов шрифта, разделённых запятыми, как возвращается функцией toString().
См. также toString().
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(), setStyleHint() и 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)
Устанавливает стиль (style()) шрифта в 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.
См. также 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.0/qfont.html