Класс QFontDatabase
Класс QFontDatabase предоставляет информацию о шрифтах, доступных в базовой системе окон. Подробнее...
| Заголовок: | #include <QFontDatabase> |
| qmake: | QT += gui |
Примечание: Все функции в этом классе являются потокобезопасными.
Открытые типы
| перечисление | SystemFont { GeneralFont, FixedFont, TitleFont, SmallestReadableFont } |
| перечисление | WritingSystem { Any, Latin, Greek, Cyrillic, Armenian, …, Nko } |
Открытые функции
| QFontDatabase() | |
| bool | bold(const QString &family, const QString &style) const |
| QStringList | families(QFontDatabase::WritingSystem writingSystem = Any) const |
| QFont | font(const QString &family, const QString &style, int pointSize) const |
| bool | isBitmapScalable(const QString &family, const QString &style = QString()) const |
| bool | isFixedPitch(const QString &family, const QString &style = QString()) const |
| bool | isPrivateFamily(const QString &family) const |
| bool | isScalable(const QString &family, const QString &style = QString()) const |
| bool | isSmoothlyScalable(const QString &family, const QString &style = QString()) const |
| bool | italic(const QString &family, const QString &style) const |
| QList<int> | pointSizes(const QString &family, const QString &styleName = QString()) |
| QList<int> | smoothSizes(const QString &family, const QString &styleName) |
| QString | styleString(const QFont &font) |
| QString | styleString(const QFontInfo &fontInfo) |
| QStringList | styles(const QString &family) const |
| int | weight(const QString &family, const QString &style) const |
| QList<QFontDatabase::WritingSystem> | writingSystems() const |
| QList<QFontDatabase::WritingSystem> | writingSystems(const QString &family) const |
Статические открытые члены
| int | addApplicationFont(const QString &fileName) |
| int | addApplicationFontFromData(const QByteArray &fontData) |
| QStringList | applicationFontFamilies(int id) |
| bool | removeAllApplicationFonts() |
| bool | removeApplicationFont(int id) |
| QList<int> | standardSizes() |
| QFont | systemFont(QFontDatabase::SystemFont type) |
| QString | writingSystemName(QFontDatabase::WritingSystem writingSystem) |
| QString | writingSystemSample(QFontDatabase::WritingSystem writingSystem) |
Подробное описание
Наиболее распространенные способы использования этого класса — запрос у базы данных списка шрифтовых семейств() и размеров() и стилей(), доступных для каждого семейства. Альтернативой pointSizes() является smoothSizes(), которая возвращает размеры, при которых заданное семейство и стиль будут выглядеть привлекательно.
Если семейство шрифтов доступно от двух или более производителей, имя производителя включено в имя семейства; например: «Helvetica [Adobe]» и «Helvetica [Cronyx]». При указании семейства вы можете использовать старый дефисный формат «производитель-семейство» или скобочный формат «семейство [производитель]»; например: «Cronyx-Helvetica» или «Helvetica [Cronyx]». Если у семейства есть производитель, оно всегда возвращается в скобочном формате, как и в случае с возвращаемым значением families().
Функция font() возвращает QFont при заданном семействе, стиле и размере.
Можно проверить сочетание семейства и стиля, чтобы определить, является ли оно курсивным() или полужирным(), и получить его вес(). Аналогично, можно вызвать isBitmapScalable(), isSmoothlyScalable(), isScalable() и isFixedPitch().
Используйте styleString(), чтобы получить текстовое представление стиля.
Класс QFontDatabase также поддерживает некоторые статические функции, например, standardSizes(). Вы можете получить описание системы письма с помощью writingSystemName() и образец символов в системе письма с помощью writingSystemSample().
Пример:
QFontDatabase database;
QTreeWidget fontTree;
fontTree.setColumnCount(2);
fontTree.setHeaderLabels(QStringList() << "Font" << "Smooth Sizes");
const QStringList fontFamilies = database.families();
for (const QString &family : fontFamilies) {
QTreeWidgetItem *familyItem = new QTreeWidgetItem(&fontTree);
familyItem->setText(0, family);
const QStringList fontStyles = database.styles(family);
for (const QString &style : fontStyles) {
QTreeWidgetItem *styleItem = new QTreeWidgetItem(familyItem);
styleItem->setText(0, style);
QString sizes;
const QList<int> smoothSizes = database.smoothSizes(family, style)
for (int points : smoothSizes)
sizes += QString::number(points) + ' ';
styleItem->setText(1, sizes.trimmed());
}
} В этом примере получает список семейств шрифтов, список стилей для каждого семейства и размеры, доступные для каждого сочетания семейства и стиля, отображая эту информацию в дереве.
См. также QFont, QFontInfo, QFontMetrics и Пример карты символов.
Документация по типу члена
перечисление QFontDatabase::SystemFont
| Константа | Значение | Описание |
|---|---|---|
QFontDatabase::GeneralFont |
0 |
Основной системный шрифт. |
QFontDatabase::FixedFont |
1 |
Фиксированный шрифт, рекомендуемый системой. |
QFontDatabase::TitleFont |
2 |
Стандартный системный шрифт для заголовков. |
QFontDatabase::SmallestReadableFont |
3 |
Наименьший читаемый системный шрифт. |
Это перечисление было введено или изменено в Qt 5.2.
перечисление QFontDatabase::WritingSystem
| Константа | Значение | Описание |
|---|---|---|
QFontDatabase::Any |
0 |
|
QFontDatabase::Latin |
1 |
|
QFontDatabase::Greek |
2 |
|
QFontDatabase::Cyrillic |
3 |
|
QFontDatabase::Armenian |
4 |
|
QFontDatabase::Hebrew |
5 |
|
QFontDatabase::Arabic |
6 |
|
QFontDatabase::Syriac |
7 |
|
QFontDatabase::Thaana |
8 |
|
QFontDatabase::Devanagari |
9 |
|
QFontDatabase::Bengali |
10 |
|
QFontDatabase::Gurmukhi |
11 |
|
QFontDatabase::Gujarati |
12 |
|
QFontDatabase::Oriya |
13 |
|
QFontDatabase::Tamil |
14 |
|
QFontDatabase::Telugu |
15 |
|
QFontDatabase::Kannada |
16 |
|
QFontDatabase::Malayalam |
17 |
|
QFontDatabase::Sinhala |
18 |
|
QFontDatabase::Thai |
19 |
|
QFontDatabase::Lao |
20 |
|
QFontDatabase::Tibetan |
21 |
|
QFontDatabase::Myanmar |
22 |
|
QFontDatabase::Georgian |
23 |
|
QFontDatabase::Khmer |
24 |
|
QFontDatabase::SimplifiedChinese |
25 |
|
QFontDatabase::TraditionalChinese |
26 |
|
QFontDatabase::Japanese |
27 |
|
QFontDatabase::Korean |
28 |
|
QFontDatabase::Vietnamese |
29 |
|
QFontDatabase::Symbol |
30 |
|
QFontDatabase::Other |
Symbol |
(то же самое, что и Символ) |
QFontDatabase::Ogham |
31 |
|
QFontDatabase::Runic |
32 |
|
QFontDatabase::Nko |
33 |
Документация по функциям-членам
QFontDatabase::QFontDatabase()
Создаёт объект базы данных шрифтов.
[static] int QFontDatabase::addApplicationFont(const QString &fileName)
Загружает шрифт из файла, указанного в fileName, и делает его доступным для приложения. Возвращается идентификатор, который можно использовать для удаления шрифта с помощью removeApplicationFont() или для получения списка имён семейств, содержащихся в шрифте.
Функция возвращает -1, если шрифт не удалось загрузить.
В настоящее время поддерживаются только TrueType-шрифты, коллекции TrueType-шрифтов и OpenType-шрифты.
Примечание: Добавление шрифтов приложения на платформах Unix/X11 без fontconfig в настоящее время не поддерживается.
Функция была добавлена в Qt 4.2.
См. также addApplicationFontFromData(), applicationFontFamilies() и removeApplicationFont().
[static] int QFontDatabase::addApplicationFontFromData(const QByteArray &fontData)
Загружает шрифт из двоичных данных, указанных в fontData, и делает его доступным для приложения. Возвращается идентификатор, который можно использовать для удаления шрифта с помощью removeApplicationFont() или для получения списка имён семейств, содержащихся в шрифте.
Функция возвращает -1, если шрифт не удалось загрузить.
В настоящее время поддерживаются только TrueType-шрифты и коллекции TrueType-шрифтов.
Примечание: Добавление шрифтов приложения на платформах Unix/X11 без fontconfig в настоящее время не поддерживается.
Функция была добавлена в Qt 4.2.
См. также addApplicationFont(), applicationFontFamilies() и removeApplicationFont().
[static] QStringList QFontDatabase::applicationFontFamilies(int id)
Возвращает список семейств шрифтов для данного шрифта приложения, идентифицированного по id.
Функция была добавлена в Qt 4.2.
См. также addApplicationFont() и addApplicationFontFromData().
bool QFontDatabase::bold(const QString &family, const QString &style) const
Возвращает true, если шрифт с семейством family и стилем style является полужирным; в противном случае возвращает false.
См. также italic() и weight().
QStringList QFontDatabase::families(QFontDatabase::WritingSystem writingSystem = Any) const
Возвращает отсортированный список доступных семейств шрифтов, которые поддерживают writingSystem.
Если семейство существует в нескольких типографиях, возвращаемое имя шрифта имеет вид "family [foundry]". Примеры: "Times [Adobe]", "Times [Cronyx]", "Palatino".
См. также writingSystems().
QFont QFontDatabase::font(const QString &family, const QString &style, int pointSize) const
Возвращает объект QFont, который имеет семейство family, стиль style и размер шрифта pointSize. Если соответствующий шрифт создать не удалось, возвращается объект QFont, использующий стандартный шрифт приложения.
bool QFontDatabase::isBitmapScalable(const QString &family, const QString &style = QString()) const
Возвращает true, если шрифт с семейством family и стилем style — это масштабируемый растровый шрифт; в противном случае возвращает false.
Масштабирование растрового шрифта обычно приводит к некрасивому, плохо читаемому результату, поскольку пиксели шрифта масштабируются. Если вам нужно масштабировать растровый шрифт, лучше масштабировать его до одного из фиксированных размеров, возвращаемых smoothSizes().
См. также isScalable() и isSmoothlyScalable().
bool QFontDatabase::isFixedPitch(const QString &family, const QString &style = QString()) const
Возвращает true, если шрифт с семейством family и стилем style — фиксированный шаг; в противном случае возвращает false.
bool QFontDatabase::isPrivateFamily(const QString &family) const
Возвращает true, если и только если семейство шрифтов family — частное.
Это происходит, например, в macOS и iOS, где системные шрифты недоступны пользователю. Для полноты картины, QFontDatabase::families() возвращает все семейства шрифтов, включая приватные. Вы должны использовать эту функцию, если разрабатываете элемент управления выбором шрифтов, чтобы скрыть приватные шрифты.
Эта функция была добавлена в Qt 5.5.
См. также families().
bool QFontDatabase::isScalable(const QString &family, const QString &style = QString()) const
Возвращает true если шрифт с семейством family и стилем style масштабируется; в противном случае возвращает false.
См. также isBitmapScalable() и isSmoothlyScalable().
bool QFontDatabase::isSmoothlyScalable(const QString &family, const QString &style = QString()) const
Возвращает true если шрифт с семейством family и стилем style плавно масштабируется; в противном случае возвращает false. Если эта функция возвращает true, то шрифт можно безопасно масштабировать до любого размера, и результат всегда будет привлекательным.
См. также isScalable() и isBitmapScalable().
bool QFontDatabase::italic(const QString &family, const QString &style) const
Возвращает true если шрифт с семейством family и стилем style курсивный; в противном случае возвращает false.
QList<int> QFontDatabase::pointSizes(const QString &family, const QString &styleName = QString())
Возвращает список доступных размеров шрифта с семейством family и стилем styleName. Список может быть пустым.
См. также smoothSizes() и стандартные размеры().
[static] bool QFontDatabase::removeAllApplicationFonts()
Удаляет все локальные шрифты приложения, добавленные ранее с помощью addApplicationFont() и addApplicationFontFromData().
Возвращает true если разгрузка шрифтов прошла успешно; в противном случае возвращает false.
Эта функция была добавлена в Qt 4.2.
См. также removeApplicationFont(), addApplicationFont() и addApplicationFontFromData().
[static] bool QFontDatabase::removeApplicationFont(int id)
Удаляет загруженный шрифт приложения, идентифицированный по id. Возвращает true если разгрузка шрифта прошла успешно; в противном случае возвращает false.
Эта функция была добавлена в Qt 4.2.
См. также removeAllApplicationFonts(), addApplicationFont() и addApplicationFontFromData().
QList<int> QFontDatabase::smoothSizes(const QString &family, const QString &styleName)
Возвращает размеры шрифта с семейством family и стилем styleName, которые будут выглядеть привлекательно. Список может быть пустым. Для несжимаемых шрифтов и растровых масштабируемых шрифтов, эта функция эквивалентна pointSizes().
См. также pointSizes() и стандартные размеры().
[static] QList<int> QFontDatabase::standardSizes()
Возвращает список стандартных размеров шрифтов.
См. также smoothSizes() и pointSizes().
QString QFontDatabase::styleString(const QFont &font)
Возвращает строку, описывающую стиль шрифта font. Например, "Жирный Курсив", "Жирный", "Курсив" или "Нормальный". Может быть возвращена пустая строка.
QString QFontDatabase::styleString(const QFontInfo &fontInfo)
Возвращает строку, описывающую стиль шрифта fontInfo. Например, "Жирный Курсив", "Жирный", "Курсив" или "Нормальный". Может быть возвращена пустая строка.
QStringList QFontDatabase::styles(const QString &family) const
Возвращает список стилей, доступных для семейства шрифтов family. Некоторые примеры стилей: "Светлый", "Светлый Курсив", "Жирный", "Наклонный", "Полужирный". Список может быть пустым.
См. также families().
[static] QFont QFontDatabase::systemFont(QFontDatabase::SystemFont type)
Возвращает наиболее подходящий шрифт для заданного типа type, для корректной интеграции с внешним видом системы.
Эта функция была добавлена в Qt 5.2.
См. также QGuiApplication::font().
int QFontDatabase::weight(const QString &family, const QString &style) const
Возвращает толщину шрифта с семейством family и стилем style. Если такой комбинации семейства и стиля нет, возвращает -1.
[static] QString QFontDatabase::writingSystemName(QFontDatabase::WritingSystem writingSystem)
Возвращает названия writingSystem (например, для отображения пользователю в диалоговом окне).
[static] QString QFontDatabase::writingSystemSample(QFontDatabase::WritingSystem writingSystem)
Возвращает строку с образцами символов из writingSystem.
QList<QFontDatabase::WritingSystem> QFontDatabase::writingSystems() const
Возвращает отсортированный список доступных систем письма. Этот список генерируется на основе информации обо всех установленных шрифтах в системе.
См. также families().
QList<QFontDatabase::WritingSystem> QFontDatabase::writingSystems(const QString &family) const
Возвращает отсортированный список систем письма, поддерживаемых данным семейством шрифтов family.
См. также families().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qfontdatabase.html