Tim*_*Tim 5 unicode qt designer qmap
我试图通过将每种语言插入到我的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");
Run Code Online (Sandbox Code Playgroud)
然后我将它们插入到组合框中:
QMap<QString, QString>::const_iterator it = m_langMap.begin();
while (it != m_langMap.end())
{
ui->comboBox->addItem(it.key());
++it;
}
Run Code Online (Sandbox Code Playgroud)
当应用程序运行时,我看到以下内容:

但是,如果我创建一个单独的.ui文件并以相同的方式插入地图,我会看到以下内容(即使我将这个单独的Dialog类包含在同一个应用程序中),所以很明显,就App而言没有字体问题知道如何渲染不同的字符集....但我无法弄清楚为什么第一个不会渲染字符集?
有人可以告诉我为什么第一个不起作用但第二个不起作用?我检查了Designer,它的Locale在我下面显示的两个ui文件中设置为'C,Default'.我似乎无法弄清楚是什么导致第一个不起作用的差异,第二个在同一个应用程序中工作.
谢谢你的帮助!
另一个测试对话框:
