Турецкий символ в тексте QPushButton

Я использую Qt 4.8.6 с vs2010.

Я создаю форму и вставляю QPushbutton с текстом "İleri".

Это нормально, когда программа запускается. После того, как я изменил текст в коде:

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

это становится Yleri.

Должен ли я изменить некоторые настройки в коде?

3 ответа

Вы должны использовать QObject::tr + Английский текст (не турецкий) в ваших исходных файлах, и предоставьте соответствующий перевод.

Посмотрите, как это сделать, и прочитайте об интернационализации в Qt.

Проблема заключается в кодировании исходного кода, несовместимого с кодировкой, используемой для преобразования c-строк в QString, Возможно, вам нужен UTF-8 -> UTF-16, но преобразование выполняется из другой системы кодирования (это выборка из текущей локали).

Лучшее решение - использовать функцию tr (как описано в другом ответе).
В качестве альтернативы убедитесь, что преобразование выполняется из правильной кодировки:

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

Убедитесь, что ваш исходный код в кодировке UTF-8.

РЕШИТЬ:

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

Но это будет работать только с турецкой ОС.

Другие вопросы по тегам