QFontDatabase Class
QFontDatabase クラスは、基礎となるウィンドウ・システムで利用可能なフォントに関する情報を提供します。詳細...
Header: | #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()); } }
例 : こ の例では、 フ ォ ン ト 書体の リ ス ト と 、 各書体の ス タ イ ルの リ ス ト と 、 各書体 と ス タ イ ルの組み合わせで利用可能なポ イ ン ト サ イ ズ を取得 し 、 こ れ ら の情報を ツ リ ー表示 し てい ます。
QFont 、QFontInfo 、QFontMetricsも参照のこと 。
メンバ・タイプのドキュメント
enum QFontDatabase::SystemFont
定数 | 値 | 説明 |
---|---|---|
QFontDatabase::GeneralFont | 0 | デフォルトのシステムフォント。 |
QFontDatabase::FixedFont | 1 | システムが推奨する固定フォント。 |
QFontDatabase::TitleFont | 2 | タイトル用のシステム標準フォント。 |
QFontDatabase::SmallestReadableFont | 3 | 可読性の最も小さいシステム・フォント。 |
enum 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, 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
(未確定スクリプト)と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)
familyfamily と stylestyle を持つフォントが太字の場合はtrue
を返し、そうでない場合はfalse
を返します。
[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 フ ォ ン ト フ ァ ミ リ が private であ る と き にのみ、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())
familyfamily と stylestyle を持つフォントが滑らかにスケーラブルであればtrue
を返し、そうでなければfalse
を返します。それ以外の場合はtrue
を返します。 この関数が を返す場合、このフォントをどのようなサイズに拡大縮小しても安全であり、その結果は常に魅力的に見えます。
isScalable() およびisBitmapScalable()も参照 。
[static]
bool QFontDatabase::italic(const QString &family, const QString &style)
ファミリーfamily およびスタイルstyle を持つフォントがイタリック体の場合はtrue
を返し、そうでない場合はfalse
を返します。
[static]
QList<int> QFontDatabase::pointSizes(const QString &family, const QString &styleName = QString())
familyfamily と stylestyleName を持つフォントが利用可能なポイントサイズのリストを返します。リストは空でもかまいません。
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 を返します。
[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()も参照して ください。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。