Spec-Zone.ru › Qt

Класс QFontDatabase

Класс QFontDatabase предоставляет информацию о шрифтах, доступных в подлежащей системе окон. Подробнее...

Заголовок: #include <QFontDatabase>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Примечание: Все функции в этом классе являются безопасными в отношении потоков.

Публичные типы

перечисление SystemFont { GeneralFont, FixedFont, TitleFont, SmallestReadableFont }
перечисление WritingSystem { Any, Latin, Greek, Cyrillic, Armenian, …, Nko }

Статические публичные члены

int addApplicationFont(const QString &fileName)
int addApplicationFontFromData(const QByteArray &fontData)
QStringList applicationFontFamilies(int id)
bool bold(const QString &family, const QString &style)
QStringList families(QFontDatabase::WritingSystem writingSystem = Any)
QFont font(const QString &family, const QString &style, int pointSize)
bool isBitmapScalable(const QString &family, const QString &style = QString())
bool isFixedPitch(const QString &family, const QString &style = QString())
bool isPrivateFamily(const QString &family)
bool isScalable(const QString &family, const QString &style = QString())
bool isSmoothlyScalable(const QString &family, const QString &style = QString())
bool italic(const QString &family, const QString &style)
QList<int> pointSizes(const QString &family, const QString &styleName = QString())
bool removeAllApplicationFonts()
bool removeApplicationFont(int id)
QList<int> smoothSizes(const QString &family, const QString &styleName)
QList<int> standardSizes()
QString styleString(const QFont &font)
QString styleString(const QFontInfo &fontInfo)
QStringList styles(const QString &family)
QFont systemFont(QFontDatabase::SystemFont type)
int weight(const QString &family, const QString &style)
QString writingSystemName(QFontDatabase::WritingSystem writingSystem)
QString writingSystemSample(QFontDatabase::WritingSystem writingSystem)
QList<QFontDatabase::WritingSystem> writingSystems()
QList<QFontDatabase::WritingSystem> writingSystems(const QString &family)

Подробное описание

Наиболее распространенные способы использования этого класса — запросы к базе данных для получения списка семейств шрифтов families() и pointSizes() и стилей, которые доступны для каждого семейства. Альтернативой pointSizes() является smoothSizes(), которая возвращает размеры, при которых заданное семейство и стиль будут выглядеть привлекательно.

Если семейство шрифтов доступно от двух или более типографий, имя типографии включается в имя семейства; например: «Helvetica [Adobe]» и «Helvetica [Cronyx]». При указании семейства вы можете использовать старый дефисный формат «типография-семейство» или скобочный формат «семейство [типография]»; например: «Cronyx-Helvetica» или «Helvetica [Cronyx]». Если у семейства есть типография, оно всегда возвращается в скобочном формате, как и в случае с возвращаемым значением families().

Функция font() возвращает QFont, задавая семейство, стиль и размер.

Можно проверить сочетание семейства и стиля, чтобы узнать, является ли оно курсивным() или жирным(), а также получить его вес(). Аналогично, можно вызвать isBitmapScalable(), isSmoothlyScalable(), isScalable() и isFixedPitch().

Используйте styleString(), чтобы получить текстовое представление стиля.

Класс QFontDatabase предоставляет некоторые вспомогательные функции, например, standardSizes(). Вы можете получить описание системы письма с помощью writingSystemName(), а образец символов в системе письма с помощью writingSystemSample().

Пример:

QTreeWidget fontTree;
fontTree.setColumnCount(2);
fontTree.setHeaderLabels(QStringList() << "Font" << "Smooth Sizes");

const QStringList fontFamilies = QFontDatabase::families();
for (const QString &family : fontFamilies) {
    QTreeWidgetItem *familyItem = new QTreeWidgetItem(&fontTree);
    familyItem->setText(0, family);

    const QStringList fontStyles = QFontDatabase::styles(family);
    for (const QString &style : fontStyles) {
        QTreeWidgetItem *styleItem = new QTreeWidgetItem(familyItem);
        styleItem->setText(0, style);

        QString sizes;
        const QList<int> smoothSizes = QFontDatabase::smoothSizes(family, style);
        for (const auto &points : smoothSizes)
            sizes += QString::number(points) + ' ';

        styleItem->setText(1, sizes.trimmed());
    }
}

Этот пример получает список семейств шрифтов, список стилей для каждого семейства и размеры точек, которые доступны для каждой комбинации семейства и стиля, отображая эту информацию в виде дерева.

См. также QFont, QFontInfo, QFontMetrics и Пример карты символов.

Документация по типам членов

[since 5.2] перечисление 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

Документация функций-членов

[static] int QFontDatabase::addApplicationFont(const QString &fileName)

Загружает шрифт из файла, указанного параметром fileName, и делает его доступным для приложения. Возвращает идентификатор, который может быть использован для удаления шрифта с помощью removeApplicationFont() или для получения списка имён семейств, содержащихся в шрифте.

Функция возвращает -1, если шрифт не удалось загрузить.

В настоящее время поддерживаются только шрифты TrueType, коллекции шрифтов TrueType и шрифты OpenType.

Примечание: Добавление шрифтов приложения на платформах Unix/X11 без fontconfig в настоящее время не поддерживается.

См. также addApplicationFontFromData(), applicationFontFamilies() и removeApplicationFont().

[static] int QFontDatabase::addApplicationFontFromData(const QByteArray &fontData)

Загружает шрифт из бинарных данных, указанных параметром fontData, и делает его доступным для приложения. Возвращает идентификатор, который может быть использован для удаления шрифта с помощью removeApplicationFont() или для получения списка имён семейств, содержащихся в шрифте.

Функция возвращает -1, если шрифт не удалось загрузить.

В настоящее время поддерживаются только шрифты TrueType и коллекции шрифтов TrueType.

Примечание: Добавление шрифтов приложения на платформах Unix/X11 без fontconfig в настоящее время не поддерживается.

См. также addApplicationFont(), applicationFontFamilies() и removeApplicationFont().

[static] QStringList QFontDatabase::applicationFontFamilies(int id)

Возвращает список семейств шрифтов для заданного шрифта приложения, идентифицированного параметром id.

См. также addApplicationFont() и addApplicationFontFromData().

[static] bool QFontDatabase::bold(const QString &family, const QString &style)

Возвращает true, если шрифт с семейством family и стилем style является полужирным; в противном случае возвращает false.

См. также italic() и weight().

[static] QStringList QFontDatabase::families(QFontDatabase::WritingSystem writingSystem = Any)

Возвращает отсортированный список доступных семейств шрифтов, которые поддерживают writingSystem.

Если семейство шрифта существует в нескольких типографиях, возвращаемое имя шрифта имеет вид «семейство [типография]». Примеры: «Times [Adobe]», «Times [Cronyx]», «Palatino».

См. также writingSystems().

[static] QFont QFontDatabase::font(const QString &family, const QString &style, int pointSize)

Возвращает объект QFont, который имеет семейство family, стиль style и размер pointSize. Если подходящий шрифт не удалось создать, возвращается объект QFont, использующий системный шрифт по умолчанию.

[static] bool QFontDatabase::isBitmapScalable(const QString &family, const QString &style = QString())

Возвращает true, если шрифт с семейством family и стилем style — масштабируемый растровый шрифт; в противном случае возвращает false.

Масштабирование растрового шрифта обычно даёт некрасивый и трудночитаемый результат, так как пиксели шрифта масштабируются. Если вам нужно масштабировать растровый шрифт, лучше масштабировать его до одного из фиксированных размеров, возвращаемых методом smoothSizes().

См. также isScalable() и isSmoothlyScalable().

[static] bool QFontDatabase::isFixedPitch(const QString &family, const QString &style = QString())

Возвращает true, если шрифт с семейством family и стилем style — шрифт с фиксированным шагом; в противном случае возвращает false.

[static, since 5.5] bool QFontDatabase::isPrivateFamily(const QString &family)

Возвращает true тогда и только тогда, когда семейство шрифтов family является приватным.

Это происходит, например, на macOS и iOS, где системные шрифты недоступны пользователю. Для полноты информации, QFontDatabase::families() возвращает все семейства шрифтов, включая приватные. Вы должны использовать эту функцию, если разрабатываете элемент управления выбором шрифтов, чтобы скрыть приватные шрифты.

Эта функция была добавлена в Qt 5.5.

См. также families().

[static] bool QFontDatabase::isScalable(const QString &family, const QString &style = QString())

Возвращает true, если шрифт с семейством family и стилем style масштабируемый; в противном случае возвращает false.

См. также isBitmapScalable() и isSmoothlyScalable().

[static] bool QFontDatabase::isSmoothlyScalable(const QString &family, const QString &style = QString())

Возвращает true, если шрифт с семейством family и стилем style плавно масштабируется; в противном случае возвращает false. Если функция возвращает true, безопасно масштабировать этот шрифт до любого размера, и результат всегда будет привлекательным.

См. также isScalable() и isBitmapScalable().

[static] bool QFontDatabase::italic(const QString &family, const QString &style)

Возвращает true, если шрифт с семейством family и стилем style курсивный; в противном случае возвращает false.

См. также weight() и bold().

[static] QList<int> QFontDatabase::pointSizes(const QString &family, const QString &styleName = QString())

Возвращает список доступных размеров точек для шрифта с семейством family и стилем styleName. Список может быть пустым.

См. также smoothSizes() и standardSizes().

[static] bool QFontDatabase::removeAllApplicationFonts()

Удаляет все шрифты, добавленные локально с помощью addApplicationFont() и addApplicationFontFromData().

Возвращает true если разгрузка шрифтов прошла успешно; в противном случае возвращает false.

См. также removeApplicationFont(), addApplicationFont(), и addApplicationFontFromData().

[static] bool QFontDatabase::removeApplicationFont(int id)

Удаляет загруженный локально шрифт, идентифицированный по id. Возвращает true если разгрузка шрифта прошла успешно; в противном случае возвращает false.

См. также removeAllApplicationFonts(), addApplicationFont(), и addApplicationFontFromData().

[static] QList<int> QFontDatabase::smoothSizes(const QString &family, const QString &styleName)

Возвращает размеры точек шрифта с семейством family и стилем styleName, которые будут выглядеть привлекательно. Список может быть пустым. Для несжимаемых шрифтов и растровых масштабируемых шрифтов эта функция эквивалентна pointSizes().

См. также pointSizes() и standardSizes().

[static] QList<int> QFontDatabase::standardSizes()

Возвращает список стандартных размеров шрифтов.

См. также smoothSizes() и pointSizes().

[static] QString QFontDatabase::styleString(const QFont &font)

Возвращает строку, описывающую стиль шрифта font. Например, "Жирный Курсив", "Жирный", "Курсив" или "Обычный". Возможна пустая строка.

[static] QString QFontDatabase::styleString(const QFontInfo &fontInfo)

Возвращает строку, описывающую стиль шрифта fontInfo. Например, "Жирный Курсив", "Жирный", "Курсив" или "Обычный". Возможна пустая строка.

[static] QStringList QFontDatabase::styles(const QString &family)

Возвращает список доступных стилей для семейства шрифтов family. Некоторые примеры стилей: "Светлый", "Светлый Курсив", "Жирный", "Наклонный", "Полужирный". Список может быть пустым.

См. также families().

[static, since 5.2] QFont QFontDatabase::systemFont(QFontDatabase::SystemFont type)

Возвращает наиболее подходящий шрифт для данного типа type для правильной интеграции с внешним видом системы.

Эта функция была добавлена в Qt 5.2.

См. также QGuiApplication::font().

[static] int QFontDatabase::weight(const QString &family, const QString &style)

Возвращает вес шрифта с семейством family и стилем style. Если такой комбинации семейства и стиля нет, возвращает -1.

См. также italic() и bold().

[static] QString QFontDatabase::writingSystemName(QFontDatabase::WritingSystem writingSystem)

Возвращает имена writingSystem (например, для отображения пользователю в диалоге).

[static] QString QFontDatabase::writingSystemSample(QFontDatabase::WritingSystem writingSystem)

Возвращает строку с образцами символов из writingSystem.

[static] QList<QFontDatabase::WritingSystem> QFontDatabase::writingSystems()

Возвращает отсортированный список доступных систем письма. Этот список генерируется из информации обо всех установленных шрифтах на системе.

См. также families().

[static] QList<QFontDatabase::WritingSystem> QFontDatabase::writingSystems(const QString &family)

Возвращает отсортированный список систем письма, поддерживаемых заданным семейством шрифтов family.

См. также families().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qfontdatabase.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API