QTextEdit unicode QString无效

时间:2015-09-30 11:37:35

标签: windows qt unicode qtextedit

我正在尝试使用自定义字体(Veteran Typewriter)编写在QTextEdit中打印消息的方法。我使用的这个字体支持Unicode,但是当我在我的应用程序中使用它时,所有字符如''','ę','ż'和其他抛光字符都没有正确显示(全部被 取代)。你知道为什么吗?如何强制使用Unicode? (我在Windows 10 x64上使用Visual Studio 2013社区+ Qt5附加组件,项目也定义为x64)。

我的代码:

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

这就是我发送示例meassage的方式:

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

1 个答案:

答案 0 :(得分:1)

如果你要在Qt中使用Unicode字符串文字,你应该使用QStringLiteral宏。

换句话说,您的代码将如下所示:

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