Я пытаюсь отображать разные языковые строки в своем приложении qt, вставляя каждый язык в QMap<QString, QString>
, чтобы его можно было повторно использовать в нескольких местах и помещать в разные поля со списком в приложении. Я делаю это, создавая QMap
вот так в CTOR:
m_langMap.insert(QString::fromWCharArray(L"English"), "english");
m_langMap.insert(QString::fromWCharArray(L"Dansk"), "dansk");
m_langMap.insert(QString::fromWCharArray(L"Nederlands"), "dutch");
m_langMap.insert(QString::fromWCharArray(L"Čeština"), "czeck");
m_langMap.insert(QString::fromWCharArray(L"Slovenský"), "slovak");
m_langMap.insert(QString::fromWCharArray(L"Magyar"), "hungarian");
m_langMap.insert(QString::fromWCharArray(L"Român"), "romanian");
m_langMap.insert(QString::fromWCharArray(L"Latviešu"), "latvian");
m_langMap.insert(QString::fromWCharArray(L"Lietuvių"), "lithuanian");
m_langMap.insert(QString::fromWCharArray(L"Polski"), "polish");
m_langMap.insert(QString::fromWCharArray(L"Português"), "portuguese");
m_langMap.insert(QString::fromWCharArray(L"Español"), "spanish");
m_langMap.insert(QString::fromWCharArray(L"Français"), "french");
m_langMap.insert(QString::fromWCharArray(L"Italiano"), "italian");
m_langMap.insert(QString::fromWCharArray(L"Svenska"), "swedish");
m_langMap.insert(QString::fromWCharArray(L"Русский"), "russian");
m_langMap.insert(QString::fromWCharArray(L"Українська"), "ukranian");
m_langMap.insert(QString::fromWCharArray(L"Русский"), "russian");
m_langMap.insert(QString::fromWCharArray(L"中文"), "chinese");
m_langMap.insert(QString::fromWCharArray(L"日本語"), "japanese");
Затем я вставляю их в поле со списком:
QMap<QString, QString>::const_iterator it = m_langMap.begin();
while (it != m_langMap.end())
{
ui->comboBox->addItem(it.key());
++it;
}
Когда приложение запускается, я вижу следующее:
Однако, если я создам отдельный файл .ui и вставлю карту таким же образом, я увижу следующее (даже если я включу этот отдельный класс Dialog в то же приложение), поэтому очевидно, что проблемы со шрифтом нет, поскольку приложение не зная, как отображать различные наборы символов... но я не могу понять, почему первый не будет отображать наборы символов?
Может кто-нибудь сказать мне, почему первый не работает, а второй работает? Я проверил конструктор, и его языковой стандарт установлен на «C, по умолчанию» в обоих файлах пользовательского интерфейса, которые я показал ниже. Кажется, я не могу понять, что еще вызывает разницу в том, что первый не работает, а второй работает в одном и том же приложении.
Спасибо за любую помощь!
Другой тестовый диалог: