QPushButton文本中的土耳其字符

时间:2016-06-15 09:27:13

标签: qt locale qt4.8 qpushbutton

我正在使用Qt 4.8.6和vs2010。

我创建了一个表单并插入了带有文本“İleri”的QPushbutton。

程序启动时没关系。我在代码中更改文本后:

ui.btSenaryoIleri->setText("İleri");
它成了Yleri。

我应该更改代码中的某些设置吗?

3 个答案:

答案 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"));

但它只适用于土耳其操作系统。