Класс QFont
Класс QFont определяет шрифт, используемый для вывода текста. Подробнее...
| Заголовок: | #include <QFont> |
| qmake: | QT += gui |
Примечание: Все функции в этом классе являются повторно-входными.
Типы
| Перечисление | Capitalization { СмешанныйРегистр, ВсеЗаглавные, ВсеСтрочные, МаленькиеПрописные, ЗаглавнаяПерваяБуква } |
| Перечисление | HintingPreference { ПредпочитатьДефолтноеНачертание, ПредпочитатьОтсутствующееНачертание, ПредпочитатьВертикальноеНачертание, ПредпочитатьПолноеНачертание } |
| Перечисление | SpacingType { ПробелыВПроцентах, АбсолютныеПробелы } |
| Перечисление | Stretch { ЛюбойНажим, УльтраСжатый, ДополнительноСжатый, Сжатый, ..., УльтраРасширенный } |
| Перечисление | Стиль { Нормальный, Курсив, Наклонный } |
| Перечисление | СтильПодсказка { Любой, БезСертификатов, Гельветика, ССертификатами, ..., Система } |
| Перечисление | СтратегияСтиля { ПредпочитатьДефолт, ПредпочитатьРастровоеИзображение, ПредпочитатьУстройство, ПредпочитатьКонтур, ..., ПринудительноЦелочисленныеМетрики } |
| Перечисление | Вес { Тонкий, ОченьСветлый, Светлый, Нормальный, ..., Жирный } |
Общедоступные Функции
| QFont() | |
| QFont(const QString &family, int pointSize = -1, int weight = -1, bool italic = false) | |
| QFont(const QFont &font, QPaintDevice *pd) | |
| QFont(const QFont &font) | |
| ~QFont() | |
| bool | bold() const |
| Стилизация заглавных букв | capitalization() const |
| QString | defaultFamily() const |
| bool | exactMatch() const |
| QString | family() const |
| bool | fixedPitch() const |
| bool | fromString(const QString &descrip) |
| Предпочтение выравнивания | hintingPreference() const |
| bool | isCopyOf(const QFont &f) const |
| bool | italic() const |
| bool | kerning() const |
| QString | key() const |
| QString | lastResortFamily() const |
| QString | lastResortFont() const |
| qreal | letterSpacing() const |
| Тип интерлиньяжа | 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(Capitalization caps) |
| void | setFamily(const QString &family) |
| void | setFixedPitch(bool enable) |
| void | setHintingPreference(HintingPreference hintingPreference) |
| void | setItalic(bool enable) |
| void | setKerning(bool enable) |
| void | setLetterSpacing(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(Style style) |
| void | setStyleHint(StyleHint hint, StyleStrategy strategy = PreferDefault) |
| void | setStyleName(const QString &styleName) |
| void | setStyleStrategy(StyleStrategy s) |
| void | setUnderline(bool enable) |
| void | setWeight(int weight) |
| void | setWordSpacing(qreal spacing) |
| int | stretch() const |
| bool | strikeOut() const |
| Стиль | style() const |
| Подсказка стиля | styleHint() const |
| QString | styleName() const |
| Стратегия стиля | styleStrategy() const |
| void | swap(QFont &other) |
| QString | toString() const |
| bool | underline() const |
| int | weight() const |
| qreal | wordSpacing() const |
| operator QVariant() const | |
| bool | operator!=(const QFont &f) const |
| bool | operator<(const QFont &f) const |
| QFont & | operator=(const QFont &font) |
| QFont & | operator=(QFont &&other) |
| 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() |
Связанные нечлены
| uint | qHash(const QFont &font, uint seed = 0) |
| QDataStream & | operator<<(QDataStream &s, const QFont &font) |
| QDataStream & | operator>>(QDataStream &s, QFont &font) |
Подробное описание
Класс QFont задает шрифт, используемый для отображения текста.
При создании объекта QFont вы указываете различные атрибуты, которые должен иметь шрифт. Qt будет использовать шрифт с указанными атрибутами, или, если подходящий шрифт отсутствует, Qt будет использовать наиболее соответствующий установленный шрифт. Атрибуты фактически используемого шрифта извлекаются из объекта QFontInfo. Если система окон предоставляет точное соответствие, exactMatch() возвращает true. Используйте QFontMetrics для получения измерений, например, длины строки в пикселях с помощью QFontMetrics::width().
Обратите внимание, что экземпляр 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().
Алгоритм подбора шрифтов имеет lastResortFamily() и lastResortFont() в случаях, когда подходящее соответствие не может быть найдено. Вы можете предоставить замены для имен семейств шрифтов, используя insertSubstitution() и insertSubstitutions(). Замены можно удалить с помощью removeSubstitutions(). Используйте substitute(), чтобы получить первый заменитель семейства или само имя семейства, если у него нет замен. Используйте substitutes(), чтобы получить список замен семейства (который может быть пустым).
Каждый QFont имеет key(), который вы можете использовать, например, в качестве ключа в кэше или словаре. Если вы хотите сохранить предпочтения пользователя относительно шрифтов, вы можете использовать QSettings, записывая информацию о шрифте с помощью toString() и читая её обратно с помощью fromString(). Также доступны функции operator<<() и operator>>(), но они работают с потоком данных.
Можно установить высоту символов, отображаемых на экране, до заданного числа пикселей с помощью setPixelSize(); однако использование setPointSize() имеет аналогичный эффект и обеспечивает независимость от устройства.
Загрузка шрифтов может быть дорогостоящей, особенно в X11. QFont содержит обширные оптимизации, чтобы ускорить копирование объектов QFont и кэшировать результаты медленных функций системы окон, на которые он опирается.
Алгоритм подбора шрифтов работает следующим образом:
- Ищется указанное семейство шрифтов.
- Если не найдено, используется styleHint() для выбора замещающего семейства.
- Ищется каждое замещающее семейство шрифтов.
- Если ни одно из них не найдено или не было styleHint(), ищется "helvetica".
- Если "helvetica" не найден, Qt попробует lastResortFamily().
- Если lastResortFamily() не найден, Qt попробует lastResortFont(), который всегда вернёт какое-то имя.
Обратите внимание, что фактический алгоритм подбора шрифтов зависит от платформы.
В Windows запрос шрифта «Courier» автоматически изменяется на «Courier New», улучшенную версию Courier, позволяющую плавно масштабировать. Более старый шрифт Courier в формате растровых изображений можно выбрать, задав стратегию стиля PreferBitmap (см. setStyleStrategy()).
После нахождения шрифта остальные атрибуты сопоставляются в порядке приоритета:
- fixedPitch()
- pointSize() (см. ниже)
- weight()
- style()
Если у вас есть шрифт, совпадающий по семейству, даже если ни один из других атрибутов не совпадает, этот шрифт будет выбран вместо шрифта, который не совпадает по семейству, но совпадает по другим атрибутам. Это связано с тем, что семейство шрифтов — основной критерий поиска.
Размер шрифта считается совпадающим, если он находится в пределах 20% от запрошенного размера шрифта. Когда несколько шрифтов соответствуют, и отличаются только размером, будет выбран шрифт с размером, наиболее близким к запрошенному.
Фактическое семейство, размер шрифта, начертание и другие атрибуты шрифта, используемые для отображения текста, будут зависеть от того, что доступно для выбранного семейства в системе окон. Объект QFontInfo можно использовать для определения фактических значений, используемых для отображения текста.
Примеры:
QFont f("Helvetica"); Если у вас есть как Adobe Helvetica, так и Cronyx Helvetica, вы можете получить любой из них.
QFont f("Helvetica [Cronyx]"); Вы можете указать требуемый производитель шрифта в имени семейства. В примере шрифт f будет установлен на «Helvetica [Cronyx]».
Чтобы определить атрибуты шрифта, фактически используемого в системе окон, используйте объект QFontInfo, например:
QFontInfo info(f1); QString family = info.family();
Для поиска метрик шрифта используйте объект QFontMetrics, например:
QFontMetrics fm(f1);
int textWidthInPixels = fm.width("How many pixels wide is this text?");
int textHeightInPixels = fm.height(); Для более подробной информации о шрифтах см. FAQ по comp.fonts. Информацию об кодировках можно найти на странице Романа Чыбо́рра.
См. также QFontMetrics, QFontInfo, QFontDatabase и Пример карты символов.
Документация по типам членов
перечисление QFont::Capitalization
Параметр отображения текста, к которому применяется этот шрифт.
| Константа | Значение | Описание |
|---|---|---|
QFont::MixedCase |
0 |
Это обычный параметр отображения текста, где не применяется изменение регистровых обозначений. |
QFont::AllUppercase |
1 |
Это изменяет текст, чтобы он отображался прописными буквами. |
QFont::AllLowercase |
2 |
Это изменяет текст, чтобы он отображался строчными буквами. |
QFont::SmallCaps |
3 |
Это изменяет текст, чтобы он отображался полужирными строчными буквами. |
QFont::Capitalize |
4 |
Это изменяет текст, чтобы первая буква каждого слова отображалась прописной. |
Это перечисление было введено или изменено в Qt 4.4.
перечисление 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 на целевой системе.
Это перечисление было введено или изменено в Qt 4.8.
enum QFont::SpacingType
| Постоянная | Значение | Описание |
|---|---|---|
QFont::PercentageSpacing |
0 |
Значение 100 сохранит интервалы без изменений; значение 200 увеличит интервалы после символа на ширину самого символа. |
QFont::AbsoluteSpacing |
1 |
Положительное значение увеличивает интервалы между буквами на соответствующее количество пикселей; отрицательное значение уменьшает интервалы. |
Это перечисление было введено или изменено в Qt 4.4.
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 |
? | оставляет алгоритму сопоставления шрифтов выбор гарнитуры. Это значение по умолчанию. |
QFont::SansSerif |
Helvetica |
алгоритм сопоставления шрифтов отдаёт предпочтение гарнитурам без засечек. |
QFont::Helvetica |
0 |
является синонимом для SansSerif. |
QFont::Serif |
Times |
алгоритм сопоставления шрифтов отдаёт предпочтение гарнитурам с засечками. |
QFont::Times |
? | является синонимом для Serif. |
QFont::TypeWriter |
Courier |
алгоритм сопоставления шрифтов отдаёт предпочтение гарнитурам с фиксированной шириной символов. |
QFont::Courier |
? | синоним для TypeWriter. |
QFont::OldEnglish |
? | алгоритм сопоставления шрифтов отдаёт предпочтение декоративным гарнитурам. |
QFont::Decorative |
OldEnglish |
является синонимом для OldEnglish. |
QFont::Monospace |
? | алгоритм сопоставления шрифтов отдаёт предпочтение гарнитурам, которые соответствуют CSS-общей гарнитуре 'monospace'. |
QFont::Fantasy |
? | алгоритм сопоставления шрифтов отдаёт предпочтение гарнитурам, которые соответствуют CSS-общей гарнитуре 'fantasy'. |
QFont::Cursive |
? | алгоритм сопоставления шрифтов отдаёт предпочтение гарнитурам, которые соответствуют CSS-общей гарнитуре 'cursive'. |
QFont::System |
? | алгоритм сопоставления шрифтов отдаёт предпочтение системным шрифтам. |
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::OpenGLCompatible |
0x0200 |
вынуждает использовать шрифты, совместимые с OpenGL. |
QFont::NoFontMerging |
0x8000 |
Если выбранный для определённой письменности шрифт не содержит символа, который требуется для отрисовки, Qt автоматически выбирает похожий шрифт, содержащий этот символ. Флаг NoFontMerging отключает эту функцию. Обратите внимание, что включение этого флага не помешает Qt автоматически выбрать подходящий шрифт, когда выбранный шрифт не поддерживает письменность текста. |
Любой из этих флагов можно объединить с одним из следующих флагов:
| Константа | Значение | Описание |
|---|---|---|
QFont::PreferMatch |
0x0020 |
отдавать предпочтение точному совпадению. Подборщик шрифтов попытается использовать точно указанный размер шрифта. |
QFont::PreferQuality |
0x0040 |
отдавать предпочтение шрифту наилучшего качества. Подборщик шрифтов будет использовать ближайший стандартный размер шрифта, который поддерживается шрифтом. |
QFont::ForceIntegerMetrics |
0x0400 |
вынуждает использовать целые значения в шрифтовых движках, которые поддерживают дробные метрики шрифтов. |
enum QFont::Weight
Qt использует шкалу начертаний от 0 до 99, аналогичную, но не идентичную шкалам, используемым в Windows или CSS. Величина 0 будет тонкой, а 99 — чрезвычайно жирной.
Этот перечисление содержит предопределённые начертания шрифтов:
| Константа | Значение | Описание |
|---|---|---|
QFont::Thin |
0 |
0 |
QFont::ExtraLight |
12 |
12 |
QFont::Light |
25 |
25 |
QFont::Normal |
50 |
50 |
QFont::Medium |
57 |
57 |
QFont::DemiBold |
63 |
63 |
QFont::Bold |
75 |
75 |
QFont::ExtraBold |
81 |
81 |
QFont::Black |
87 |
87 |
Документация функций-членов
QFont::QFont()
Создаёт объект шрифта, использующий шрифт по умолчанию приложения.
См. также QGuiApplication::setFont() и 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]". Если шрифт доступен от нескольких производителей, а производитель не указан, выбирается произвольный производитель. Если шрифт недоступен, шрифт будет установлен с помощью алгоритма подбора шрифтов.
См. также Weight, setFamily(), setPointSize(), setWeight(), setItalic(), setStyleHint() и QGuiApplication::font().
QFont::QFont(const QFont &font, QPaintDevice *pd)
Создаёт шрифт, копируя font для использования с устройством рисования pd.
QFont::QFont(const QFont &font)
Создаёт шрифт, являющийся копией font.
QFont::~QFont()
Уничтожает объект шрифта и освобождает все выделенные ресурсы.
bool QFont::bold() const
Возвращает true, если weight() имеет значение больше, чем QFont::Medium; в противном случае возвращает false.
См. также weight(), setBold() и QFontInfo::bold().
Capitalization QFont::capitalization() const
Возвращает текущий тип задания прописных букв шрифта.
Эта функция была добавлена в Qt 4.4.
См. также setCapitalization().
QString QFont::defaultFamily() const
Возвращает имя семейства шрифтов, соответствующее текущему стилю.
См. также StyleHint, styleHint() и setStyleHint().
bool QFont::exactMatch() const
Возвращает true, если в системе доступен шрифт, точно соответствующий настройкам этого шрифта.
См. также QFontInfo.
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().
HintingPreference QFont::hintingPreference() const
Возвращает текущий предпочтительный уровень намекания для глифов, отрисованных с этим шрифтом.
Эта функция была добавлена в Qt 4.8.
См. также setHintingPreference().
[static] void QFont::insertSubstitution(const QString &familyName, const QString &substituteName)
Вставляет substituteName в таблицу подстановки для семейства familyName.
См. также insertSubstitutions(), removeSubstitutions(), substitutions(), substitute() и substitutes().
[static] void QFont::insertSubstitutions(const QString &familyName, const QStringList &substituteNames)
Вставляет список семейств substituteNames в список подстановки для familyName.
См. также 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.
QString QFont::lastResortFamily() const
Возвращает имя семейства шрифтов «последней надежды».
Текущая реализация пытается использовать множество общих шрифтов, возвращая первый найденный. Возможен случай, когда ни одно семейство не найдено, в этом случае возвращается пустая строка.
См. также lastResortFont().
QString QFont::lastResortFont() const
Возвращает имя шрифта «последней надежды» для алгоритма подбора шрифтов. Используется, если семейство шрифтов «последней надежды» недоступно. Всегда возвращает имя, в случае необходимости возвращает что-то вроде «fixed» или «system».
Текущая реализация пытается использовать множество общих шрифтов, возвращая первый найденный. Реализация может измениться в любое время, но эта функция всегда вернёт строку, содержащую что-то.
Теоретически возможно, что lastResortFont() действительно отсутствует, в таком случае Qt прервётся с сообщением об ошибке. Мы не смогли обнаружить случай, когда это происходит. Пожалуйста, сообщите об этом как об ошибке, желательно с перечнем установленных шрифтов.
См. также lastResortFamily().
qreal QFont::letterSpacing() const
Возвращает интерлиньяж для шрифта.
Эта функция была добавлена в Qt 4.4.
См. также setLetterSpacing(), letterSpacingType() и setWordSpacing().
SpacingType QFont::letterSpacingType() const
Возвращает тип интерлиньяжа, используемый для интерлиньяжа.
Эта функция была добавлена в Qt 4.4.
См. также 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] 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(Capitalization caps)
Устанавливает тип прописных букв для текста в этом шрифте в caps.
Тип прописных букв шрифта определяет вид текста.
Эта функция была добавлена в Qt 4.4.
См. также capitalization().
void QFont::setFamily(const QString &family)
Устанавливает имя семейства шрифта. Имя нечувствительно к регистру и может включать имя типографии.
Имя family может необязательно включать имя типографии, например, "Helvetica [Cronyx]". Если family доступен в нескольких типографиях, и типография не указана, выбирается произвольная типография. Если семейство недоступно, семейство будет установлено с помощью алгоритма подбора шрифтов.
См. также family(), setStyleHint() и QFontInfo.
void QFont::setFixedPitch(bool enable)
Если enable равно true, устанавливает фиксированный интервал; в противном случае отключает фиксированный интервал.
См. также fixedPitch() и QFontInfo.
void QFont::setHintingPreference(HintingPreference hintingPreference)
Устанавливает предпочтительный уровень сглаживания глифов в hintingPreference. Это подсказка для подсистемы рендеринга шрифтов использовать определённый уровень сглаживания, и поддержка варьируется между платформами. Подробнее см. таблицу в документации для QFont::HintingPreference.
Предпочтительный уровень сглаживания по умолчанию — QFont::PreferDefaultHinting.
Эта функция была добавлена в Qt 4.8.
См. также hintingPreference().
void QFont::setItalic(bool enable)
Устанавливает стиль шрифта (style()) в 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(SpacingType type, qreal spacing)
Устанавливает интерлиньяж для шрифта в spacing и тип интерлиньяжа в type.
Интерлиньяж изменяет стандартное расстояние между буквами в шрифте. Расстояние между буквами может быть уменьшено или увеличено в процентах от ширины символа или в пикселях, в зависимости от выбранного типа интерлиньяжа.
Эта функция была добавлена в Qt 4.4.
См. также 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(Style style)
Устанавливает стиль шрифта на style.
См. также style(), italic() и QFontInfo.
void QFont::setStyleHint(StyleHint hint, StyleStrategy strategy = PreferDefault)
Устанавливает подсказку стиля и стратегию соответственно на hint и strategy.
Если эти значения не установлены явно, подсказка стиля по умолчанию будет AnyStyle, а стратегия стиля — PreferDefault.
Qt не поддерживает подсказки стиля на X11, поскольку эта информация не предоставляется системой окон.
См. также StyleHint, styleHint(), StyleStrategy, styleStrategy() и QFontInfo.
void QFont::setStyleName(const QString &styleName)
Устанавливает имя стиля шрифта на styleName. При установке другие свойства стиля, такие как style() и weight(), будут игнорироваться при сопоставлении шрифтов, хотя они могут быть смоделированы позже, если это поддерживает движок шрифтов платформы.
Из-за более низкого качества искусственно смоделированных стилей и отсутствия полной поддержки на всех платформах не рекомендуется использовать сопоставление по имени стиля вместе с сопоставлением по свойствам стиля.
Эта функция была добавлена в Qt 4.8.
См. также styleName().
void QFont::setStyleStrategy(StyleStrategy s)
Устанавливает стратегию стиля шрифта на s.
См. также styleStrategy() и QFont::StyleStrategy.
void QFont::setUnderline(bool enable)
Если enable равно true, устанавливает подчеркивание; в противном случае — отключает его.
См. также underline() и QFontInfo.
void QFont::setWeight(int weight)
Устанавливает толщину шрифта на weight, используя шкалу, определённую перечислением QFont::Weight.
Примечание: Если styleName() установлено, это значение может быть проигнорировано при выборе шрифта.
См. также weight() и QFontInfo.
void QFont::setWordSpacing(qreal spacing)
Устанавливает межсловный интервал для шрифта на spacing.
Межсловный интервал изменяет стандартный интервал между словами. Положительное значение увеличивает межсловный интервал на соответствующее количество пикселей, а отрицательное значение уменьшает его.
Межсловный интервал не будет применяться к системам письма, где отдельные слова не разделяются пробелами.
Эта функция была добавлена в Qt 4.4.
См. также wordSpacing() и setLetterSpacing().
int QFont::stretch() const
Возвращает коэффициент сжатия/растяжения шрифта.
См. также setStretch().
bool QFont::strikeOut() const
Возвращает true , если перечеркивание установлено; в противном случае возвращает false.
См. также setStrikeOut().
Style QFont::style() const
Возвращает стиль шрифта.
См. также setStyle().
StyleHint QFont::styleHint() const
Возвращает StyleHint.
Подсказка стиля влияет на алгоритм сопоставления шрифтов. Список доступных подсказок см. в QFont::StyleHint.
См. также setStyleHint(), QFont::StyleStrategy и QFontInfo::styleHint().
QString QFont::styleName() const
Возвращает запрошенное имя стиля шрифта. Его можно использовать для сопоставления шрифта с нестандартными стилями (которые нельзя нормализовать с помощью других свойств стиля).
Эта функция была добавлена в Qt 4.8.
См. также setStyleName(), setFamily() и setStyle().
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(), removeSubstitution() и substitute().
void QFont::swap(QFont &other)
Меняет местами экземпляр шрифта с other. Эта функция очень быстрая и никогда не терпит неудачу.
Эта функция была добавлена в Qt 5.0.
QString QFont::toString() const
Возвращает описание шрифта. Описание — это список атрибутов, разделённых запятыми, идеально подходящий для использования в QSettings.
См. также fromString().
bool QFont::underline() const
Возвращает true если подчеркивание установлено; в противном случае возвращает false.
См. также setUnderline().
int QFont::weight() const
Возвращает начертание шрифта, используя ту же шкалу, что и перечисление QFont::Weight.
См. также setWeight(), Weight и QFontInfo.
qreal QFont::wordSpacing() const
Возвращает интерлиньяж для шрифта.
Эта функция была добавлена в Qt 4.4.
См. также setWordSpacing() и setLetterSpacing().
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().
QFont &QFont::operator=(const QFont &font)
Присваивает font этому шрифту и возвращает ссылку на него.
QFont &QFont::operator=(QFont &&other)
Перемещает присваивание other этому экземпляру QFont.
Эта функция была добавлена в Qt 5.2.
bool QFont::operator==(const QFont &f) const
Возвращает true если этот шрифт равен f; в противном случае возвращает false.
Два шрифта QFont считаются равными, если их атрибуты шрифта равны.
См. также operator!=() и isCopyOf().
Связанные нечлен-функции
uint qHash(const QFont &font, uint 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-5.9/qfont.html