情報収集の効率が爆上がり!AIが検索結果を分析して、最適な記事を自動的に抽出


QSupportedWritingSystems::supported() 関数は、特定のフォントが指定された文字体系をサポートしているかどうかを判断するために使用されます。これは、テキストレンダリングやフォント選択の際に、適切なフォントを選択するために役立ちます。

構文

bool QSupportedWritingSystems::supported(QFontDatabase::WritingSystem writingSystem) const;

パラメータ

  • writingSystem: サポートを確認する文字体系。QFontDatabase::WritingSystem 列挙型で指定します。

戻り値

  • 関数が false を返す場合、指定された文字体系はサポートされていません。
  • 関数が true を返す場合、指定された文字体系がサポートされています。

QSupportedWritingSystems writingSystems;
writingSystems.setSupported(QFontDatabase::Latin, true);
writingSystems.setSupported(QFontDatabase::Greek, false);

QFont font("Arial");

if (writingSystems.supported(QFontDatabase::Latin)) {
    // フォントはラテン文字をサポートしています。
} else {
    // フォントはラテン文字をサポートしていません。
}

if (writingSystems.supported(QFontDatabase::Greek)) {
    // フォントはギリシャ文字をサポートしています。
} else {
    // フォントはギリシャ文字をサポートしていません。
}

詳細

QSupportedWritingSystems クラスは、フォントがサポートする文字体系のリストを保持するために使用されます。supported() 関数は、このリストを使用して、特定の文字体系がサポートされているかどうかを判断します。

QSupportedWritingSystems クラスは、フォントデータベースから情報を読み取ることによって初期化されます。フォントデータベースには、システムにインストールされているすべてのフォントに関する情報が含まれています。

  • supported() 関数は、パフォーマンスを向上させるためにキャッシュを使用する場合があります。キャッシュが無効になっている場合は、関数は常にフォントデータベースから情報を読み取る必要があり、パフォーマンスが低下する可能性があります。
  • supported() 関数は、フォントが実際に使用できるかどうかを保証するものではありません。フォントがインストールされているが、破損している可能性があります。
  • QSupportedWritingSystems クラスは、Qt C++ API の一部です。
  • QSupportedWritingSystems クラスは、Qt GUI 5.15 以降で使用できます。


#include <QApplication>
#include <QFont>
#include <QFontDatabase>
#include <QSupportedWritingSystems>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    // ラテン語とギリシャ語をサポートするフォントを作成します。
    QFont font("Arial");

    // QSupportedWritingSystems オブジェクトを作成します。
    QSupportedWritingSystems writingSystems;

    // ラテン語とギリシャ語のサポートを設定します。
    writingSystems.setSupported(QFontDatabase::Latin, true);
    writingSystems.setSupported(QFontDatabase::Greek, true);

    // フォントがラテン語をサポートしているかどうかを確認します。
    if (writingSystems.supported(QFontDatabase::Latin)) {
        qDebug() << "フォントはラテン語をサポートしています。";
    } else {
        qDebug() << "フォントはラテン語をサポートしていません。";
    }

    // フォントがギリシャ語をサポートしているかどうかを確認します。
    if (writingSystems.supported(QFontDatabase::Greek)) {
        qDebug() << "フォントはギリシャ語をサポートしています。";
    } else {
        qDebug() << "フォントはギリシャ語をサポートしていません。";
    }

    return 0;
}

このコードを実行すると、次の出力がコンソールに表示されます。

フォントはラテン語をサポートしています。
フォントはギリシャ語をサポートしています。

このコードは、QSupportedWritingSystems::supported() 関数を使用して、フォントが特定の文字体系をサポートしているかどうかを判断する方法を示す基本的な例です。実際のアプリケーションでは、この関数をより複雑な方法で使用することができます。

  • ユーザーが選択した文字体系に基づいてフォントを動的に選択する
  • 複数のフォントを比較して、最も多くの文字体系をサポートするフォントを選択する
  • 特定のフォントがサポートするすべての文字体系を一覧表示する


代替方法

  • カスタムロジック
    特定のニーズに合わせたカスタムロジックを実装することもできます。これは、より複雑なソリューションが必要な場合に役立ちます。
  • QFontDatabase::writingSystems() メソッド
    このメソッドは、システムにインストールされているすべてのフォントがサポートするすべての文字体系のリストを返します。ただし、このメソッドは、QSupportedWritingSystems::supported() 関数よりも多くの情報を返すため、より多くの処理が必要となります。
  • QFontInfo::writingSystems() メソッド
    このメソッドは、特定のフォントがサポートするすべての文字体系のリストを返します。ただし、このメソッドは、QSupportedWritingSystems::supported() 関数よりもパフォーマンスが低くなる可能性があります。

各代替方法の詳細

QFontInfo::writingSystems() メソッド

QFont font("Arial");
QFontInfo info(font);

QList<QFontDatabase::WritingSystem> writingSystems = info.writingSystems();

for (QFontDatabase::WritingSystem writingSystem : writingSystems) {
    qDebug() << writingSystem;
}
Latin
Greek

QFontDatabase::writingSystems() メソッド

QList<QFontDatabase::WritingSystem> writingSystems = QFontDatabase::writingSystems();

for (QFontDatabase::WritingSystem writingSystem : writingSystems) {
    qDebug() << writingSystem;
}
Latin
Greek
Arabic
Armenian
Cyrillic
Devanagari
Gujarati
Gurmukhi
Hebrew
Hiragana
Katakana
Kannada
Khmer
Lao
Latin
Malayalam
Mongolian
Myanmar
NKo
Oriya
Phagspa
Sinhala
Syriac
Tamil
Telugu
Thai
Tibetan
Uyghur

カスタムロジック

カスタムロジックを実装するには、特定のニーズに合わせたコードを書く必要があります。これは、より複雑なソリューションが必要な場合に役立ちます。


bool isFontSupported(const QFont &font, QFontDatabase::WritingSystem writingSystem) {
    // カスタムロジックを使用して、フォントが文字体系をサポートしているかどうかを判断します。
    return true;
}

QSupportedWritingSystems::supported() 関数は、特定のフォントが指定された文字体系をサポートしているかどうかを判断するための便利なツールです。しかし、状況によっては、この関数の代替方法が必要となる場合があります。

  • この代替方法は、Qt C++ API の一部です。
  • この代替方法は、Qt GUI 5.15 以降で使用できます。