Я работаю над приложением QT / QML (4.7.4) для устройства под управлением X11.При запуске на рабочем столе linux китайский и русский шрифты работают нормально, но когда на устройстве это не так.
Из всех проведенных исследований я не уверен, является ли это проблемой QML FontLoader, или я должен бытьисправлять шрифты X11?
Я провел пару дней, работая над fc-cache и xset + fp и связанными с ними командами, но безуспешно.Я также безуспешно пытался использовать QFontDatabase :: addApplicationFont ().
Если я должен использовать FontLoader, должен ли я сообщать каждому текстовому элементу во всем приложении, когда шрифт другой (когда пользователь переключил языки)?) Это может быть большой задачей.Я бы скорее пофиксил это через X11, если это возможно.
Если ответ в X11, мне нужна помощь.Я скопировал все шрифты из дистрибутива Qt на устройство и выполнил следующие команды (а также добавил китайский шрифт на данный момент, так как мне просто нужно увидеть, как работает один из них, чтобы узнать, что у меня есть решение):
(Это может быть не так, как было пару дней)
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";
Я не вижу сообщение об ошибке, поэтому мойшрифт явно загружен правильно.
Когда я запускаю свое приложение, я не вижу шрифта в списке (как через FC_DEBUG, так и через fc-list).
Буду признателен за любые идеи и помощь порешить эту проблему.Спасибо