QString str1 =“测试”;不起作用

时间:2016-08-01 13:54:15

标签: qt

从官方git(https://github.com/sddm/sddm)学习sddm代码,我尝试添加此测试代码:

void UserModel::test() {
    QString str1 = "Test";
    qWarning("%s",str1);
}

但我有一个错误:

  

在这种情况下。

这是什么意思? 我应该如何初始化一个新的QString变量?

1 个答案:

答案 0 :(得分:0)

您没有发布完整错误,也无法将QString直接传递给qWarning。要使用C格式字符串,您需要将其转换为本地编码并将const char*传递给它,或者更好地使用调试流:

void UserModel::test() {
    auto str1 = QStringLiteral("Test");
    // preferred
    qWarning() << str1;
    // acceptable
    qWarning("%s", str1.toLocal8Bit().constData());
}