1

多言語 (英語、ヘブライ語、タイ語、アラビア語、中国語) を選択リストとして表示したいのですが、最初にデバッグ メッセージを使用してサポート ファミリーを表示していますが、これが適切な検索方法かどうかわかりませんサポートフォント、間違った解決策である場合は修正してください

/* output the support font */
QFontDatabase qfd ;
qDebug() << qfd.families(QFontDatabase::Hebrew);
qDebug() << qfd.families(QFontDatabase::Arabic);
qDebug() << qfd.families(QFontDatabase::Thai);
qDebug() << qfd.families(QFontDatabase::TraditionalChinese);

デバッグ メッセージを取得した後、ツール「makeqpf」を使用して qpf2 ファイルを作成しています。挿入置換に関する QFont 関数が 見つかりまし

ここで、ヘブライ語、アラビア語の場合は DejaVu Sans、タイ語の場合はwaree

このようにして、中国語、英語、ヘブライ語、アラビア語は表示できますが、タイ語は表示できません。

QFont font1("WenQuanYi Micro Hei [prerendered]",14,50,FALSE);
subs << "DejaVu Sans [prerendered]" << "Waree" ;
font1.insertSubstitutions("WenQuanYi Micro Hei [prerendered]", subs);
qApp->setFont(font1);

qDebug() << font1.family() ;
QStringList sl = font1.substitutions() ;
qDebug() << sl.isEmpty() ;
qDebug() << sl ;
qDebug() << font1.substitutes("WenQuanYi Micro Hei [prerendered]") ;

そして、フォントファミリを変更するために別のテストを行います

QFont font1("DejaVu Sans [prerendered]",14,50,FALSE);
subs << "WenQuanYi Micro Hei [prerendered]" << "Waree" ;
font1.insertSubstitutions("DejaVu Sans [prerendered]", subs);
qApp->setFont(font1);

「DejaVu Sans」を最初に挿入すると、多言語ページを開いたときにプログラムがクラッシュしました。プログラムが中国語を表示できずにクラッシュしたためだと思います。

私はまた、以下のように「タイ語」フォント「Waree」を個別に読み込もうとしました

QFont font1("Waree",14,50,FALSE);

このように、プログラムで「タイ語」フォントを表示できますが、「タイ語」(ヘブライ語、アラビア語、繁体字中国語) のみがすべて空白のままです。

最終的な目標は、すべての言語を同時に表示することなので、ウェアをロードして正しく表示する必要があります。助けてください。読んでくれてありがとう!

どんな返信でも大歓迎です!!

4

0 に答える 0