2015-09-30 6 views
0

Я пытаюсь написать метод, который печатает сообщения в QTextEdit, используя собственный шрифт (пишущая машинка для ветеранов). Этот шрифт, который я использую, поддерживает Unicode, но когда я использую его в своем приложении, все символы, такие как «±», «ę», «ż» и другие польские символы, отображаются неправильно (все заменены на ). Вы знаете, почему? Как принудительно использовать Unicode? (Я использую Visual Studio 2013 Community + Qt5 Add-on, в Windows 10 x64, а проект также задан как x64).QTextEdit unicode QString не работает

Мой код:

void QtCubic::QtCStartScreen::sendMessage(QString message) { 
    if (log.toPlainText().length() != 0) { 
     log.insertPlainText("\n"); 
    } 
    log.insertPlainText(message); 
} 

И это, как я посылаю пример meassage:

splashScreen.sendMessage("Zażółć gęślą jaźń"); 
+0

, что является результатом 'QString :: fromUtf8 ("Zażółć gęślą jaźń")' – UmNyobe

+0

Дубликат: см [этот ответ] (HTTP: //stackoverflow.com/a/27754246/3637404) –

+0

Результат выглядит как Za g l ja . Я нашел связанный вопрос раньше, но это решение не работает для меня. Даже если я использую 'log.setText (QString :: fromUtf8 (" Zażółć gęślą jaźń "), результат будет таким же. –

ответ

1

Если вы собираетесь использовать Unicode строковые литералы в Qt, вы должны использовать QStringLiteral макро ,

Другими словами, ваш код будет выглядеть следующим образом:

splashScreen.sendMessage(QStringLiteral("Zażółć gęślą jaźń")); 
Смежные вопросы