Турецкий символ в тексте 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"));
Но это будет работать только с турецкой ОС.