2016-10-03 9 views
0

Qt/QMLで書かれた組み込みLinux上で動作するソフトウェアがあります。私はフォントファミリを使用しています。それをSomeFontFamily.otfとしましょう。このフォントファミリは漢字をサポートしていないため、中国語のテキストを表示したい場合は、代わりに空の四角形が表示されます。デスクトップLinuxで同じソフトウェアを実行すると、中国語のテキストでも同じ結果が得られますが、ディレクトリを中国語をサポートするフォントファミリのhomeフォルダに追加すると文字が表示されます。だから私は埋め込みデバイスで同じことをすることができ、私のhomeディレクトリに正しいフォントで.fontフォルダを追加したと思いましたが、残念ながらうまくいきませんでした。私はthisのQtフォントに関するドキュメントを組み込みデバイス上に見つけました。私のフォントはlib/fontsというディレクトリの下に置く必要があると言われています。なぜなら、Qtはそのフォントを埋め込みデバイスで検索するからです。私はそれを試しましたが、残念ながら成功しませんでした。誰も同じような問題がありましたか?これは翻訳に関連するものではありません。私はちょうど英語のテキストで漢字を表示できるようにしたい。Linuxエンベデッドデバイスに漢字を表示する方法Qt

答えて

0

使用して、それを有効にする必要があります。それをQMLに公開し、それをデフォルトのフォントとして使用します。それは魅力のように働く。

追加情報:フォントをリソースファイル(.qrc)にバンドルしている場合は、これらのフォントをQFontDatabase::addApplicationFontで追加する必要があります。

1

埋め込みQTバージョンには機能が欠けていることが多く、従属関係を最初から把握せずに依存関係を切り詰めたい人には機能しません。

フォント置換を有効にするには、fontconfigを有効にしてビルドが必要です。複雑なテキストのサポート(latin glyphs以上のものを実行するもの)を取得するには、harfbuzzが必要です。新しいバージョン(harfbuzz-ng)が優れています。

+0

ヒントのおかげで、私が最後に思いついた解決策を見つけるのを手伝ってくれました。 – Silex

1

私は自分のFontConfigを使ってアラビア語の問題を解決しました。あなたは私の最終的な解決策は、実際にQFontのラッパークラスを作成し、私のセットフォントのためのコンストラクタでQFont::insertSubstitution(...)を追加してFontConfig & Font Qt Embedded

+0

リンクをいただきありがとうございました。本当に有益であり、最終的な解決策を見つけるのに役立ちました。何らかの理由で私はFontConfigを正しく動作させることができませんでした。 – Silex

関連する問題