QFontDatabase Class

QFontDatabase クラスは、基礎となるウィンドウ・システムで利用可能なフォントに関する情報を提供します。詳細...

ヘッダー #include <QFontDatabase>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

注意:このクラスの関数はすべてスレッドセーフです。

パブリック型

enum SystemFont { GeneralFont, FixedFont, TitleFont, SmallestReadableFont }
enum WritingSystem { Any, Latin, Greek, Cyrillic, Armenian, …, Nko }

静的パブリックメンバ

(since 6.8) void addApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)
int addApplicationFont(const QString &fileName)
int addApplicationFontFromData(const QByteArray &fontData)
(since 6.8) QStringList applicationFallbackFontFamilies(QChar::Script script)
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()
(since 6.8) bool removeApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)
bool removeApplicationFont(int id)
(since 6.8) void setApplicationFallbackFontFamilies(QChar::Script script, const QStringList &familyNames)
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() およびstyles() をデータベースに問い合わせることです。pointSizes() に代わるものとして、smoothSizes() があります。これは、指定されたファミリーおよびスタイルが魅力的に見えるサイズを返します。

フォントファミリが2つ以上のファウンドリから入手可能な場合、ファウンドリ名はファミリ名に含まれます:例えば、「Helvetica [Adobe]」と「Helvetica [Cronyx]」です。ファミリーを指定するときは、古いハイフン付きの "foundry-family "フォーマットか、括弧付きの "family [foundry]"フォーマットのどちらかを使うことができます:例えば、"Cronyx-Helvetica "または "Helvetica [Cronyx]"です。ファミリにファウンドリがある場合は、families() が返す値のように、常に括弧付きの書式で返される。

font() 関数は、ファミリ、スタイル、ポイントサイズを指定してQFont を返します。

ファミリーとスタイルの組み合わせは、italic() かbold() かをチェックし、weight() を取得することができます。同様に、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());
    }
}

例 : こ の例では、 フ ォ ン ト 書体の リ ス ト と 、 各書体の ス タ イ ルの リ ス ト と 、 各書体 と ス タ イ ルの組み合わせで利用可能なポ イ ン ト サ イ ズ を取得 し 、 こ れ ら の情報を ツ リ ー表示 し てい ます。

QFontQFontInfoQFontMetricsも参照のこと

メンバー・タイプ・ドキュメント

enum QFontDatabase::SystemFont

定数説明
QFontDatabase::GeneralFont0デフォルトのシステムフォント
QFontDatabase::FixedFont1システムが推奨する固定フォント
QFontDatabase::TitleFont2タイトル用のシステム標準フォント。
QFontDatabase::SmallestReadableFont3可読性の最も小さいシステム・フォント。

enum QFontDatabase::WritingSystem

定数説明
QFontDatabase::Any0
QFontDatabase::Latin1
QFontDatabase::Greek2
QFontDatabase::Cyrillic3
QFontDatabase::Armenian4
QFontDatabase::Hebrew5
QFontDatabase::Arabic6
QFontDatabase::Syriac7
QFontDatabase::Thaana8
QFontDatabase::Devanagari9
QFontDatabase::Bengali10
QFontDatabase::Gurmukhi11
QFontDatabase::Gujarati12
QFontDatabase::Oriya13
QFontDatabase::Tamil14
QFontDatabase::Telugu15
QFontDatabase::Kannada16
QFontDatabase::Malayalam17
QFontDatabase::Sinhala18
QFontDatabase::Thai19
QFontDatabase::Lao20
QFontDatabase::Tibetan21
QFontDatabase::Myanmar22
QFontDatabase::Georgian23
QFontDatabase::Khmer24
QFontDatabase::SimplifiedChinese25
QFontDatabase::TraditionalChinese26
QFontDatabase::Japanese27
QFontDatabase::Korean28
QFontDatabase::Vietnamese29
QFontDatabase::Symbol30
QFontDatabase::OtherSymbol(シンボルと同じ)
QFontDatabase::Ogham31
QFontDatabase::Runic32
QFontDatabase::Nko33

メンバ関数ドキュメント

[static, since 6.8] void QFontDatabase::addApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)

script のアプリケーション定義フォールバックフォントとしてfamilyName を追加します。

Qt は、選択されているフォントが対応していないキャラクタに遭遇すると、フォールバックフォントのリ ストを検索して、そのキャラクタに一致するフォントを見つけます。こ れに よ り 、 メ イ ン フ ォ ン ト が複数の用字系に対応 し ていない と し て も 、 複数の用字系を 1 個の文字列内に結合す る こ と が可能にな り ます。

予備フ ォ ン ト の リ ス ト は、 文字列の用字系だけでな く 、 シ ス テ ム言語な ど他の条件に基づいて選択 さ れます。

シ ス テ ムの予備 リ ス ト で通常は十分ですが、 デフ ォ ル ト の動作を上書 き し てお く と 有用な場合 も あ り ます。そのようなケースの1つは、クロスプラットフォームの一貫性を確保するために、フォールバックとしてアプリケーションフォントを使用する場合です。

また、地域差のあるスクリプトで書かれたアプリケーションを、複数の地域で翻訳せずに実行したい場合もあります。この場合、ローカルリージョンのフォールバックを、アプリケーションの言語にマッチするもので上書きすると便利かもしれません。

addApplicationFallbackFontFamily() にfamilyName を渡せば、script の不足キ ャ ラ ク タ を照合す る 際に優先 さ れ る フ ァ ミ リ と な り ます。script は有効な用字系 (QChar::Script_Latin 以上) でなければな り ません。同 じ ス ク リ プ ト に対 し て複数の フ ォ ン ト を追加す る と き は、 優先順位は逆順にな り 、 最後に追加 さ れた フ ァ ミ リ が最初にチ ェ ッ ク さ れます。

注意: Qt のフォント照合アルゴリズムは、QChar::Script_Common (undetermined script) とQChar::Script_Latin を同じものと見なします。どちらかにフォールバックを追加すると、もう一方にも適用されます。

この関数は Qt 6.8 で導入されました。

setApplicationFallbackFontFamilies(),removeApplicationFallbackFontFamily(),applicationFallbackFontFamilies()も参照してください

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

fileName で指定されたファイルからフォントを読み込み、アプリケーションで利用できるようにします。フ ォ ン ト を再度removeApplicationFont() で削除 し た り 、 フ ォ ン ト 内の フ ァ ミ リ 名の リ ス ト を取得 し た り す る ために使え る ID が返 さ れます。

こ の関数は、 フ ォ ン ト を読み込む こ と がで き なか っ た と き は -1 を返 し ます。

現在、 TrueType フ ォ ン ト ・ TrueType フ ォ ン ト コ レ ク シ ョ ン ・ OpenType フ ォ ン ト にのみ対応 し てい ます。

addApplicationFontFromData(),applicationFontFamilies(),removeApplicationFont()も参照

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

fontData で指定されたバイナリデータからフォントを読み込み、アプリケーションで利用できるようにします。フ ォ ン ト を再度removeApplicationFont() で削除 し た り 、 フ ォ ン ト 内の フ ァ ミ リ 名の リ ス ト を取得 し た り す る ために使え る ID が返 さ れます。

こ の関数は、 フ ォ ン ト を読み込む こ と がで き なか っ た と き は -1 を返 し ます。

現在、 TrueType フ ォ ン ト ・ TrueType フ ォ ン ト コ レ ク シ ョ ン ・ OpenType フ ォ ン ト にのみ対応 し てい ます。

addApplicationFont(),applicationFontFamilies(),removeApplicationFont()も参照

[static, since 6.8] QStringList QFontDatabase::applicationFallbackFontFamilies(QChar::Script script)

addApplicationFallbackFontFamily() 関数によってscript のために以前に追加された、アプリケーション定義のフォールバックフォントファミリのリストを返します。

この関数は Qt 6.8 で導入されました。

setApplicationFallbackFontFamilies(),addApplicationFallbackFontFamily(),removeApplicationFallbackFontFamily()も参照してください

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

id で指定 さ れたアプ リ ケーシ ョ ン フ ォ ン ト に対す る フ ォ ン ト フ ァ ミ リ の リ ス ト を返 し ます。

addApplicationFont() およびaddApplicationFontFromData()も参照

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

ファミリーfamily とスタイルstyle を持つフォントが太字の場合はtrue を返し、そうでない場合はfalse を返す。

italic() およびweight()も参照

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

writingSystem に対応する利用可能なフォントファミリーのソートリストを返します。

あるフォントファミリが複数のファウンドリに存在する場合、返されるフォント名は "family [foundry]" という形式になります。例:「Times [Adobe]」、「Times [Cronyx]」、「Palatino」。

writingSystems()も参照してください

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

ファミリーfamily 、スタイルstyle 、ポイントサイズpointSize を持つQFont オブジェクトを返します。一致するフォントが作成できなかった場合は、アプリケーションのデフォルト・フォントを使用するQFont オブジェクトが返されます。

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

familyfamily と stylestyle を持つフォントがスケーラブルなビットマップフォントである場合はtrue を返し、そうでない場合はfalse を返します。ビ ッ ト マ ッ プ フ ォ ン ト を拡大縮小す る と 、 フ ォ ン ト の ピ ク セルは拡大縮小 さ れて し ま う ので、 たいていは見栄えの悪い、 も っ と も 読めな い結果にな り ます。ビ ッ ト マ ッ プ フ ォ ン ト を拡縮す る 必要があ る と き は、smoothSizes() が返す固定サ イ ズのいずれかに拡縮す る ほ う が よ いで し ょ う 。

isScalable() およびisSmoothlyScalable()も参照

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

ファミリfamily とスタイルstyle を持つフォントが固定ピッチの場合はtrue を返し、そうでない場合はfalse を返す。

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

family フォントファミリーがプライベートである場合に限り、true を返す。

これは例えば、システムUIフォントがユーザーからアクセスできないmacOSやiOSで起こります。完全を期すために、QFontDatabase::families ()は、プライベートなものを含むすべてのフォントファミリーを返します。プライベート・フォントを非表示にするためにフォント選択コントロールを開発する場合は、この関数を使用する必要があります。

families()も参照してください

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

ファミリーfamily とスタイルstyle を持つフォントがスケーラブルである場合はtrue を返し、そうでない場合はfalse を返します。

isBitmapScalable() およびisSmoothlyScalable()も参照

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

ファミリーfamily とスタイルstyle を持つフォントが滑らかに拡大縮小可能な場合はtrue を返し、そうでない場合はfalse を返します。この関数がtrue を返す場合、このフォントをどのようなサイズに拡大縮小しても安全であり、その結果は常に魅力的に見えます。

isScalable() およびisBitmapScalable()も参照

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

ファミリーfamily とスタイルstyle を持つフォントがイタリック体であればtrue を返し、そうでなければ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, since 6.8] bool QFontDatabase::removeApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)

script addApplicationFallbackFontFamily に対するア プ リ ケーシ ョ ン定義予備フ ォ ン ト の リ ス ト か ら を削除 し ます。familyName

ファミリ名がリストにあった場合は true を、なかった場合は false を返します。

この関数は Qt 6.8 で導入されました。

addApplicationFallbackFontFamily()、setApplicationFallbackFontFamilies()、applicationFallbackFontFamilies()も参照してください

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

id で指定 さ れてい る 、 それ以前に ロ ー ド さ れてい る アプ リ ケーシ ョ ン フ ォ ン ト を削除 し ます。フォントのアンロードに成功した場合はtrue を返し、失敗した場合はfalse を返す。

removeAllApplicationFonts()、addApplicationFont()、addApplicationFontFromData()も参照

[static, since 6.8] void QFontDatabase::setApplicationFallbackFontFamilies(QChar::Script script, const QStringList &familyNames)

script に対するアプリケーション定義のフォールバックフォントのリストをfamilyNames に設定します。

Qt は、script にあるキャラクタが現在のフォントでサポートされていない場合、familyNames にあるファミリを、一致するものが見つかるまで、先頭から順にチェックします。詳 し く はaddApplicationFallbackFontFamily() を参照。

こ の関数は、script に対する、 アプ リ ケーシ ョ ン定義の予備フ ォ ン ト のカ レ ン ト リ ス ト を上書き し ます。

この関数は Qt 6.8 で導入されました。

addApplicationFallbackFontFamily()、removeApplicationFallbackFontFamily()、applicationFallbackFontFamilies()も参照してください

[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 のスタイルを表す文字列を返します。 例えば、"Bold Italic"、"Bold"、"Italic"、"Normal "などです。空の文字列が返されることもある。

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

fontInfo のスタイルを表す文字列を返します。 例えば、"Bold Italic"、"Bold"、"Italic"、"Normal "などです。空の文字列が返されることもある。

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

フォントファミリfamily で利用可能なスタイルの一覧を返します。スタイルの例:「Light」、「Light Italic」、「Bold」、「Oblique」、「Demi」。リストは空でもかまいません。

families()も参照

[static] QFont QFontDatabase::systemFont(QFontDatabase::SystemFont type)

システムのルック&フィールに適切に統合するために、与えられたtype の場合に最も適切なフォントを返します。

QGuiApplication::font()も参照

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

familyfamily と stylestyle を持つフォントの太さを返す。そのようなファミリとスタイルの組み合わせがない場合は -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()も参照

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.