QPushButton文本中的土耳其字符

问题描述 投票:0回答:3

我正在使用Qt 4.8.6和vs2010。

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

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

ui.btSenaryoIleri->setText("İleri");

它变成Yleri。

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

qt locale qt4.8 qpushbutton
3个回答
3
投票

您应该在源文件中使用QObject::tr +英文文本(非土耳其语),并提供相应的翻译。

请参阅how to do it并阅读Qt中的internationalization


1
投票

问题是源代码的编码与用于将c字符串转换为QString的编码不兼容。可能你需要UTF-8 - > UTF-16,但转换是从其他编码系统完成的(这是从当前语言环境中获取)。

最佳解决方案是使用tr函数(如其他答案中所述)。 作为替代方案,请确保通过正确的编码完成转换:

ui.btSenaryoIleri->setText(QString::fromUtf8("İleri"));

确保您的源代码是UTF-8编码的。


0
投票

解决了:

ui.btSenaryoIleri->setText(QString::fromLocal8Bit("İleri"));

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

© www.soinside.com 2019 - 2024. All rights reserved.