1

X11 を実行しているデバイス用の QT/QML (4.7.4) アプリケーションに取り組んでいます。Linux デスクトップで実行すると、中国語とロシア語のフォントは正常に動作しますが、デバイス上では動作しません。

私が行ったすべての調査と調査から、これが QML FontLoader の問題なのか、それとも X11 フォントを修正する必要があるのか​​ わかりません。

fc-cache と xset +fp および関連するコマンドの作業に数日を費やしましたが、うまくいきませんでした。また、 QFontDatabase::addApplicationFont() を使用してみましたが、うまくいきませんでした。

FontLoader を使用する必要がある場合、フォントが異なる場合 (ユーザーが言語を切り替えた場合)、アプリ全体のすべてのテキスト項目に通知する必要がありますか? それは大きなタスクになる可能性があります。可能であれば、X11 経由でこれを修正したいと思います。

答えが X11 にある場合は、助けが必要です。Qtディストリビューションからすべてのフォントをデバイスにコピーし、次のコマンドを実行しました(解決策があることを知るためにそれらの1つが機能することを確認する必要があるため、中国語フォントを追加しました):

(数日経過しているため、これは完了していない可能性があります)

1. go into the directory that I copied the Qt fonts to and:
   A. mkfontscale .
   B. mkfontdir .
2. sudo xset +fp "/dir/to/qt/fonts/dir"
3. sudo xset fp rehash
4. xset q  (shows whats set)
5. sudo fc-cache -fv
6. export FC_DEBUG=1024  (shows debug info when app starting app or fc-list)

私の Qt アプリケーションには、次のものがあります。

int ret = fonts.addApplicationFont("/opt/project/lib/fonts/wqy-zenhei.ttc");
if (ret == -1)
   qDebug() << "ERROR - font didnt load";

ERROR メッセージが表示されないので、フォントが正しく読み込まれているようです。

アプリケーションを実行すると、(FC_DEBUG と fc-list の両方を介して) リストにフォントが表示されません。

この問題を解決するための洞察/ヘルプをいただければ幸いです。ありがとう

4

1 に答える 1