Класс QFont
Класс QFont задает запрос на шрифт, используемый для отображения текста. Подробнее...
| Заголовок: | #include <QFont> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
Примечание: Все функции в этом классе являются перевходовыми.
Публичные типы
| Перечисление | Capitalization { СмешанныйРегистр, ВсеЗаглавные, ВсеСтрочные, МаленькиеЗаглавные, ЗаглавныйРегистр } |
| Перечисление | HintingPreference { ПредпочитатьУмолчаниеНачертания, ПредпочитатьОтсутствиеНачертания, ПредпочитатьВертикальноеНачертание, ПредпочитатьПолноеНачертание } |
| Перечисление | SpacingType { ПроцентныйИнтервал, АбсолютныйИнтервал } |
| Перечисление | Stretch { ЛюбойНажим, СверхСжатый, ДополнительноСжатый, Сжатый, ПолуСжатый, …, СверхРасширенный } |
| Перечисление | Стиль { НормальныйСтиль, КурсивныйСтиль, НаклонныйСтиль } |
| Перечисление | НамекНаСтиль { ЛюбойСтиль, БезСеррифа, Гельветика, ССеррифом, Таймс, …, Системный } |
| Перечисление | СтратегияСтилизации { ПредпочитатьУмолчание, ПредпочитатьРастровый, ПредпочитатьУстройство, ПредпочитатьКонтурный, ПринудительноКонтурный, …, ПредпочитатьКачество } |
| Перечисление | Вес { Тонкий, ОченьТонкий, Лёгкий, Нормальный, Средний, …, Чёрный } |
Публичные функции
| 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(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() |
Связанные нечлены
| size_t | qHash(const QFont &font, size_t seed = 0) |
| QDataStream & | operator<<(QDataStream &s, const QFont &font) |
| QDataStream & | operator>>(QDataStream &s, QFont &font) |
Подробное описание
QFont можно рассматривать как запрос к одному или нескольким шрифтам в системе.
При создании объекта QFont вы указываете различные атрибуты, которые должен иметь шрифт. Qt будет использовать шрифт с указанными атрибутами или, если соответствующий шрифт не найден, Qt будет использовать наиболее подходящий установленный шрифт. Атрибуты фактически используемого шрифта можно получить из объекта QFontInfo. Если система окон предоставляет точное соответствие, exactMatch() возвращает true. Используйте QFontMetricsF для получения измерений, например, длины строки в пикселях, используя QFontMetrics::width().
Атрибуты, которые не заданы явно, не повлияют на алгоритм выбора шрифта, и будут использоваться значения по умолчанию.
Для загрузки конкретного физического шрифта, обычно представленного одним файлом, используйте QRawFont вместо этого.
Обратите внимание, что экземпляр QGuiApplication должен существовать перед использованием QFont. Вы можете установить шрифт по умолчанию для приложения с помощью QGuiApplication::setFont().
Если выбранный шрифт не содержит всех символов, которые необходимо отобразить, QFont попытается найти эти символы в ближайших эквивалентных шрифтах. Когда QPainter рисует символ из шрифта, QFont сообщит, есть ли у него этот символ; если нет, QPainter нарисует незаполненный квадрат.
Создавайте QFont так:
QFont serifFont("Times", 10, QFont::Bold);
QFont sansFont("Helvetica [Cronyx]", 12); Атрибуты, заданные в конструкторе, также можно задать позже, например, setFamily(), setPointSize(), setPointSizeF(), setWeight() и setItalic(). Остальные атрибуты необходимо задавать после создания объекта, например, setBold(), setUnderline(), setOverline(), setStrikeOut() и setFixedPitch(). Объекты QFontInfo должны создаваться после задания атрибутов шрифта. Объект QFontInfo не будет изменяться, даже если вы измените атрибуты шрифта. Соответствующие функции «получения», например, 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 по шрифтам comp.fonts. Информация по кодировкам доступна на странице UTR17.
См. также QFontMetrics, QFontInfo, QFontDatabase и Пример карты символов.
Документация по типам членов
Перечисление QFont::Capitalization
Параметр рендеринга текста, к которому применяется этот шрифт.
| Константа | Значение | Описание |
|---|---|---|
QFont::MixedCase |
0 |
Это обычный вариант рендеринга текста, без изменения регистра. |
QFont::AllUppercase |
1 |
Это изменяет текст на прописные буквы. |
QFont::AllLowercase |
2 |
Это изменяет текст на строчные буквы. |
QFont::SmallCaps |
3 |
Это изменяет текст на полужирный шрифт (small-caps). |
QFont::Capitalize |
4 |
Это изменяет текст, делая первую букву каждого слова заглавной. |
enum QFont::HintingPreference
Этот перечисление описывает различные уровни намекания (hinting), которые могут быть применены к глифам для улучшения читаемости на дисплеях, где это может быть оправдано плотностью пикселей.
| Константа | Значение | Описание |
|---|---|---|
QFont::PreferDefaultHinting |
0 |
Используйте уровень намекания по умолчанию для целевой платформы. |
QFont::PreferNoHinting |
1 |
Если возможно, отобразите текст без намекания на контуры глифов. Макет текста будет типографически точным и масштабируемым, используя те же метрики, что используются, например, при печати. |
QFont::PreferVerticalHinting |
2 |
Если возможно, отобразите текст без горизонтального намекания, но выровняйте глифы по сетке пикселей по вертикали. Текст будет выглядеть более чётко на дисплеях с низкой плотностью пикселей, недостаточной для точного отображения глифов. Но поскольку горизонтальные метрики глифов не намечены, макет текста будет масштабироваться на устройства с высокой плотностью пикселей (например, принтеры) без влияния на такие детали, как переносы строк. |
QFont::PreferFullHinting |
3 |
Если возможно, отобразите текст с намеканием как по горизонтали, так и по вертикали. Текст будет изменён для оптимизации читаемости на целевом устройстве, но поскольку метрики будут зависеть от целевого размера текста, положения глифов, переносов строк и других типографических деталей не будут масштабироваться, что означает, что макет текста может выглядеть по-разному на устройствах с различной плотностью пикселей. |
Обратите внимание, что это перечисление описывает только предпочтение, поскольку весь диапазон уровней намекания не поддерживается на всех поддерживаемых платформах Qt. В следующей таблице подробно описано влияние данного предпочтения намекания на выбранный набор целевых платформ.
| PreferDefaultHinting | PreferNoHinting | PreferVerticalHinting | PreferFullHinting | |
|---|---|---|---|---|
| Windows Vista (w/o Platform Update) и более ранние версии | Полное намекание | Полное намекание | Полное намекание | Полное намекание |
| Windows 7 и Windows Vista (с обновлением платформы) и включённый в Qt DirectWrite | Полное намекание | Вертикальное намекание | Вертикальное намекание | Полное намекание |
| 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 |
алгоритм сопоставления шрифтов предпочитает шрифты, отображаемые как семейство шрифтов 'monospace' в CSS. |
QFont::Fantasy |
8 |
алгоритм сопоставления шрифтов предпочитает шрифты, отображаемые как семейство шрифтов 'fantasy' в CSS. |
QFont::Cursive |
6 |
алгоритм сопоставления шрифтов предпочитает шрифты, отображаемые как семейство шрифтов 'cursive' в CSS. |
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 |
предпочитать шрифт наилучшего качества. Алгоритм сопоставления шрифтов будет использовать ближайший стандартный размер точки, который поддерживает шрифт. |
enum 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(const QString &family, int pointSize = -1, int weight = -1, bool italic = false)
Создаёт объект шрифта со специфицированными family, pointSize, weight и italic настройками.
Если pointSize равно нулю или отрицательно, размер шрифта устанавливается в зависящее от системы значение по умолчанию. Обычно это 12 пунктов.
Имя family может необязательно содержать имя типографии, например, "Helvetica [Cronyx]". Если семейство доступно от более чем одной типографии, а типография не указана, выбирается произвольная типография. Если семейство недоступно, семейство устанавливается с помощью алгоритма сопоставления шрифтов.
Это разделяет строку family по запятой и вызывает setFamilies() со списком. Для сохранения шрифта, использующего запятую в своём имени, используйте конструктор, принимающий QStringList.
См. также Weight, setFamily(), 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().
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]". Если семейство доступно от более чем одной типографии и имя типографии не указано, выбирается произвольная типография. Если семейство недоступно, семейство будет установлено с помощью алгоритма подбора шрифтов qfont.
Эта функция была добавлена в Qt 5.13.
См. также family(), families(), setFamily(), setStyleHint() и QFontInfo.
void QFont::setFamily(const QString &family)
Устанавливает имя семейства шрифта. Имя нечувствительно к регистру и может включать имя типографии.
Имя family может необязательно также включать имя типографии, например, "Helvetica [Cronyx]". Если family доступно от более чем одной типографии и имя типографии не указано, выбирается произвольная типография. Если семейство недоступно, семейство будет установлено с помощью алгоритма подбора шрифтов qfont.
Это разделит строку семейства по запятым и вызовет 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() и 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 истинно, устанавливает подчеркивание включённым; иначе — выключает подчеркивание.
См. также 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; иначе возвращает ложь.
Два 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.2/qfont.html