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 の両方を介して) リストにフォントが表示されません。
この問題を解決するための洞察/ヘルプをいただければ幸いです。ありがとう