Почему кириллица отображается неправильно в интерфейсе?

Здравствуй, Тостер!
Проблема в том, что при добавлении в интерфейс кириллицы с помощью кода, например вот так (в QComboBox):
ui->userList->addItem("Стандартный пользователь");
ui->userList->addItem(tr("Стандартный пользователь"));
ui->userList->addItem(trUtf8("Стандартный пользователь"));

во всех трех случаях выводит черные ромбики с вопросиками. Латиница отображается нормально.
  • Вопрос задан
  • 1529 просмотров
Решения вопроса 2
@vilgeforce
Раздолбай и программист
Потому что Qt ожидает юникодные строки.
QTextCodec *codec = QTextCodec::codecForName("Windows-1251");
ui->userList->addItem(codec->toUnicode("Стандартный пользователь"));

Попробуйте такой код, должен сработать.
Ответ написан
Zifix
@Zifix Куратор тега Qt
Barbatum
На самом деле все исходники в проекте на Qt 5 должны быть в кодировке Utf8, поэтому совет vilgeforce — костыли, не надо так.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@TriKrista
Не надо так:

ui->userList->addItem(tr("Стандартный пользователь"));
ui->userList->addItem(trUtf8("Стандартный пользователь"));



tr и trUtf8, обычно используются для локализации приложения, пишите на английском, потом подключайте "перевод" и Qt сам все подставит.

Попробуйте добавить итемы в комбобокс в конструкторе форм.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы