Класс QFontDatabase
Класс QFontDatabase предоставляет информацию о шрифтах, доступных в базовой системе окон. Подробнее...
| Заголовок: | #include <QFontDatabase> |
| qmake: | QT += gui |
Примечание: Все функции в этом классе являются потокобезопасными.
Типы публичного доступа
| перечисление | SystemFont { GeneralFont, FixedFont, TitleFont, SmallestReadableFont } |
| перечисление | WritingSystem { Any, Latin, Greek, Cyrillic, ..., Nko } |
Публичные функции
| QFontDatabase() | |
| bool | bold(const QString &family, const QString &style) const |
| QStringList | families(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<WritingSystem> | writingSystems() const |
| QList<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(SystemFont type) |
| QString | writingSystemName(WritingSystem writingSystem) |
| QString | writingSystemSample(WritingSystem writingSystem) |
Подробное описание
Класс QFontDatabase предоставляет информацию о шрифтах, доступных в базовой системе окон.
Наиболее распространенные способы использования этого класса — запросить у базы данных список семейств шрифтов families() и размеры pointSizes() и стили styles(), которые доступны для каждого семейства. Альтернативой pointSizes() является smoothSizes(), которая возвращает размеры, при которых данное семейство и стиль будут выглядеть привлекательно.
Если семейство шрифтов доступно от двух или более производителей, имя производителя включается в имя семейства; например: "Helvetica [Adobe]" и "Helvetica [Cronyx]". При указании семейства вы можете использовать старый формат "производитель-семейство" или формат в квадратных скобках "семейство [производитель]"; например: "Cronyx-Helvetica" или "Helvetica [Cronyx]". Если у семейства есть производитель, оно всегда возвращается в формате в квадратных скобках, как и в случае с значением, возвращаемым функцией families().
Функция font() возвращает QFont по заданному семейству, стилю и размеру.
Комбинацию семейства и стиля можно проверить на italic() или bold() и получить ее weight(). Аналогично, можно вызвать isBitmapScalable(), isSmoothlyScalable(), isScalable() и isFixedPitch().
Используйте функцию styleString(), чтобы получить текстовое представление стиля.
Класс QFontDatabase также поддерживает некоторые статические функции, например, standardSizes(). Вы можете получить описание системы письма с помощью writingSystemName(), а образец символов в системе письма с помощью writingSystemSample().
Пример:
QFontDatabase database;
QTreeWidget fontTree;
fontTree.setColumnCount(2);
fontTree.setHeaderLabels(QStringList() << "Font" << "Smooth Sizes");
foreach (const QString &family, database.families()) {
QTreeWidgetItem *familyItem = new QTreeWidgetItem(&fontTree);
familyItem->setText(0, family);
foreach (const QString &style, database.styles(family)) {
QTreeWidgetItem *styleItem = new QTreeWidgetItem(familyItem);
styleItem->setText(0, style);
QString sizes;
foreach (int points, database.smoothSizes(family, style))
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 |
? | |
QFontDatabase::Runic |
? | |
QFontDatabase::Nko |
? |
Документация функций-членов
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(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() и standardSizes().
[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, которые будут выглядеть привлекательно. Список может быть пустым. Для не масштабируемых и bitmap-масштабируемых шрифтов эта функция эквивалентна pointSizes().
См. также pointSizes() и standardSizes().
[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. Некоторые примеры стилей: "Light", "Light Italic", "Bold", "Oblique", "Demi". Список может быть пустым.
См. также families().
[static] QFont QFontDatabase::systemFont(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(WritingSystem writingSystem)
Возвращает имена writingSystem (например, для отображения пользователю в диалоговом окне).
[static] QString QFontDatabase::writingSystemSample(WritingSystem writingSystem)
Возвращает строку с образцами символов из writingSystem.
QList<WritingSystem> QFontDatabase::writingSystems() const
Возвращает отсортированный список доступных систем письма. Этот список сгенерирован из информации обо всех установленных шрифтах на системе.
См. также families().
QList<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.9/qfontdatabase.html