このページでは

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.9) void addApplicationEmojiFontFamily(const QString &familyName)
(since 6.8) void addApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)
int addApplicationFont(const QString &fileName)
int addApplicationFontFromData(const QByteArray &fontData)
(since 6.9) QStringList applicationEmojiFontFamilies()
(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.9) bool removeApplicationEmojiFontFamily(const QString &familyName)
(since 6.8) bool removeApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)
bool removeApplicationFont(int id)
(since 6.9) void setApplicationEmojiFontFamilies(const QStringList &familyNames)
(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());
    }
}

この例では、フォントファミリーのリスト、各ファミリーのスタイルのリスト、およびファミリーとスタイルの各組み合わせで利用可能なポイントサイズを取得し、この情報をツリービューに表示します。

関連項目: QFont 、QFontInfo 、およびQFontMetrics 。

メンバ型のドキュメント

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(Symbolと同じ)
QFontDatabase::Ogham31 
QFontDatabase::Runic32 
QFontDatabase::Nko33 

メンバ関数のドキュメント

[static, since 6.9] void QFontDatabase::addApplicationEmojiFontFamily(const QString &familyName)

familyName をアプリケーション定義の絵文字フォントとして追加します。

多色絵文字や絵文字シーケンスを表示する場合、Qtはデフォルトでシステムの既定の絵文字フォントを優先します。特定の視覚スタイルを実現するため、あるいはシステムでサポートされていない絵文字を表示するために、アプリケーションがデフォルト設定を上書きしたい場合があるかもしれません。

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

removeApplicationEmojiFontFamily 、setApplicationEmojiFontFamilies()、applicationEmojiFontFamilies()、およびaddApplicationFallbackFontFamily()も参照してください 。

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

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

Qtは、選択されたフォントでサポートされていない文字に遭遇した場合、フォールバックフォントのリストを検索して、それらに一致するフォントを見つけます。これにより、メインのフォントがそれらをサポートしていない場合でも、1つの文字列内で複数の文字体系を組み合わせることが可能になります。

フォールバックフォントのリストは、文字列の文字体系や、システムの言語設定などの条件に基づいて選択されます。

通常、システムのフォールバックリストで十分ですが、デフォルトの動作を上書きした方が便利な場合もあります。その一例として、クロスプラットフォームでの一貫性を確保するために、アプリケーションフォントをフォールバックとして使用する場合が挙げられます。

また、アプリケーションが地域によって表記が異なる文字体系で記述されており、複数の地域で翻訳せずに実行したい場合などもあります。この場合、ローカル地域のフォールバックを、アプリケーションの言語に一致するものへ上書きすると便利です。

familyName をaddApplicationFallbackFontFamily()に渡すことで、script から欠落している文字をマッチングする際に、これが優先されるフォントファミリーとなります。script は有効なスクリプト(QChar::Script_Latin 以降)でなければなりません。同じスクリプトに対して複数のフォントを追加する場合、優先順位は逆順に設定されるため、最後に追加されたフォントファミリーが最初にチェックされることになります。

注:Qtの フォントマッチングアルゴリズムでは、QChar::Script_Common (未確定のスクリプト)とQChar::Script_Latin は同一とみなされます。これらのいずれかにフォールバックを追加すると、もう一方にも適用されます。

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

setApplicationFallbackFontFamilies()、removeApplicationFallbackFontFamily()、およびapplicationFallbackFontFamilies()も参照してください 。

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

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

フォントを読み込めなかった場合、この関数は -1 を返します。

現在、TrueType フォント、TrueType フォントコレクション、および OpenType フォントのみがサポートされています。

addApplicationFontFromData()、applicationFontFamilies()、およびremoveApplicationFont()も参照してください 。

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

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

フォントを読み込めなかった場合、この関数は -1 を返します。

現在、TrueType フォント、TrueType フォントコレクション、および OpenType フォントのみがサポートされています。

addApplicationFont()、applicationFontFamilies()、およびremoveApplicationFont()も参照してください 。

[static, since 6.9] QStringList QFontDatabase::applicationEmojiFontFamilies()

アプリケーションで定義された絵文字フォントファミリーのリストを返します。

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

addApplicationEmojiFontFamily()、removeApplicationEmojiFontFamily()、setApplicationEmojiFontFamilies()、およびapplicationFallbackFontFamilies()も参照してください 。

[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 をサポートする利用可能なフォントファミリーのソート済みリストを返します。

1つのフォントファミリーが複数のフォントメーカーから提供されている場合、そのフォントの返される名前は「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())

ファミリーが `family `、スタイルが `style ` のフォントがスケーラブルなビットマップフォントである場合は `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 を返します。

これは、たとえば macOS や iOS において、システムの UI フォントがユーザーからアクセスできない場合に発生します。補足として、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.9] bool QFontDatabase::removeApplicationEmojiFontFamily(const QString &familyName)

以前にaddApplicationEmojiFontFamily()で追加されていた場合、アプリケーション定義の絵文字フォントのリストからfamilyName を削除します。

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

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

addApplicationEmojiFontFamily()、setApplicationEmojiFontFamilies()、applicationEmojiFontFamilies()、およびremoveApplicationFallbackFontFamily()も参照してください 。

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

script のアプリケーション定義のフォールバックフォントのリストから、familyName を削除します。ただし、事前にaddApplicationFallbackFontFamily() によって追加されていることが条件です。

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

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

addApplicationFallbackFontFamily()、setApplicationFallbackFontFamilies()、およびapplicationFallbackFontFamilies()も参照してください 。

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

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

removeAllApplicationFonts()、addApplicationFont()、およびaddApplicationFontFromData()も参照してください 。

[static, since 6.9] void QFontDatabase::setApplicationEmojiFontFamilies(const QStringList &familyNames)

アプリケーションで定義された絵文字フォントのリストを `familyNames` に設定します。

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

addApplicationEmojiFontFamily()、removeApplicationEmojiFontFamily()、applicationEmojiFontFamilies()、およびsetApplicationFallbackFontFamilies()も参照してください 。

[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)

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()も参照してください 。

© 2026 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.