qt qml китайские / русские шрифты не работают - PullRequest
1 голос
/ 31 января 2012

Я работаю над приложением 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).

Буду признателен за любые идеи и помощь порешить эту проблему.Спасибо

1 Ответ

0 голосов
/ 01 ноября 2015

Оказывается, я все делал правильно, как указано выше.Мой qml использовал китайские (и другие) шрифты непосредственно в исходном коде, но другие файлы qml переводились.Как только я выбираю язык (у нас при запуске есть панель выбора qml), шрифты есть.Теперь мне нужно решить, какие начальные шрифты не отображаются.

...