Qt — китайский язык отображается в виде пустых полей, даже если доступен резервный шрифт

#qt #fonts

Вопрос:

Я использую Qt 5.4.3.

В своем приложении main() я звоню QFontDatabase::addApplicationFont("path_to_zen_hei") и. QFontDatabase::addApplicationFont("path_to_open_sans") Когда я запрашиваю свои семейства баз данных QFontDatabase, доступны семейства шрифтов Open Sans amp; WenQuanYi Zen Hei. Пока все идет хорошо!

Если я начну свое приложение с QApplication::setFont("Open Sans", 12) , я получу красивый перевод латинского алфавита, а китайские иероглифы будут отображаться в виде пустых полей. Если я начну свое приложение с QApplication::setFont("WenQuanYi Zen Hei", 12) китайских иероглифов, они будут отображаться просто отлично, а латинский алфавит будет выглядеть ужасно.

Что я хочу, так это постоянно использовать Open Sans, но при необходимости отображать китайские иероглифы (которые недоступны в Open Sans), чтобы вернуться к шрифту Zen Hei для их отображения.

Мой вопрос в том, что я здесь упускаю — с обоими шрифтами, установленными в качестве шрифтов приложения, и шрифтом приложения, установленным для открытия Sans, почему Qt не возвращается к Zen Hei для рендеринга китайских иероглифов вместо отображения пустых полей?