Я создаю настольное приложение с помощью Qt, моя машина-разработчик выигрывает 7 x64 с японской локали, стандартный системный шрифт Meiryo. Большинство пользовательских интерфейсов Win 7 находятся в этом шрифте, хотя классические/старые программы, такие как окно настройки шрифта ui, используют другой шрифт, который является MS UI Gothic. Это меня не беспокоит, пока я не обнаружил, что QtCreator строит мое приложение с MS UI Gothic в одном месте, а Meiryo - в другом. Например, qlabels, qlineedits, qcombobox использует MS UI Gothic, но пользовательский комплект с qtableview, который я добавляю позже, использует Meiryo.
Я сделал большую часть пользовательского интерфейса в QtCreator Designer, а дополнение к нему добавлено в код. Если я изменю шрифт всех виджетов на Meiryo в The Designer, то, конечно, приложение будет использовать Meiryo, поэтому посмотрите правильно, но в этом случае я предпочел бы, чтобы Qt автоматически выбирал любой шрифт по умолчанию для системы, потому что win 7 не будет единственным Я буду использовать эту программу.
Что еще больше беспокоило меня, так это то, что QApplication:: font() возвращает MS UI Gothic, что является ложным в моем случае. Конечно, я могу установить шрифт приложения по всему миру, используя QApplication:: setFont(), но это побеждает всю цель иметь собственный внешний вид без микроманипуляции.
Итак, мой вопрос:
- как Qt определяет стандартный шрифт системы и
- Если это ошибка Qt, как мне обойти это?
- Как использовать файлы .ui и по-прежнему использовать мой пользовательский интерфейс по умолчанию для системного шрифта во время выполнения?
Некоторые разъяснения и факты, которые я нашел
-
Я хочу, чтобы мое приложение использовало стандартный шрифт системы для КАЖДОГО текста.
-
В этом обсуждении сказано, что Designer будет добавлять информацию о шрифте независимо от того, хотите вы этого или нет. Таким образом, Qt будет оценивать эту информацию, а не стандартный шрифт по умолчанию. По крайней мере, кто-то, кто упоминал об удалении этой информации вручную, должен был сделать шрифт по умолчанию для Qt во время выполнения.
-
В моей машине dev QApplication:: font() возвращает WRONG шрифт по умолчанию. НО, почему QTableView, который я добавляю позже, использует RIGHT шрифт? Откуда он получил эту информацию?
Итак, если я нахожу, где QTableView находит эту информацию, я могу ее получить в основном и широко использовать приложение QApplication:: setFont(). Затем то, что осталось, вручную удаляет всю информацию о шрифте, тогда ВЕРНУЮ это сработает. Но это похоже на то, почему мы используем Qt в первую очередь, не так ли?