我正在使用Qt 4.8.6和vs2010。
我创建了一个表单并插入了带有文本“İleri”的QPushbutton。
程序启动时没关系。我在代码中更改文本后:
ui.btSenaryoIleri->setText("İleri");
它成了Yleri。
我应该更改代码中的某些设置吗?
答案 0 :(得分:3)
您应在源文件中使用QObject::tr
+英文文本(非土耳其语),并提供相应的翻译。
请参阅how to do it并阅读Qt中的internationalization。
答案 1 :(得分:1)
问题是源代码的编码与用于将c字符串转换为QString
的编码不兼容。可能你需要UTF-8 - > UTF-16但转换是从其他编码系统完成的(这是从当前语言环境中获取)。
最佳解决方案是使用tr功能(如其他答案中所述) 作为替代方案,确保通过正确的编码完成转换:
ui.btSenaryoIleri->setText(QString::fromUtf8("İleri"));
确保您的源代码是UTF-8编码。
答案 2 :(得分:0)
解决:
ui.btSenaryoIleri->setText(QString::fromLocal8Bit("İleri"));
但它只适用于土耳其操作系统。