从官方git(https://github.com/sddm/sddm)学习sddm代码,我尝试添加此测试代码:
void UserModel::test() {
QString str1 = "Test";
qWarning("%s",str1);
}
但我有一个错误:
这是什么意思? 我应该如何初始化一个新的QString变量?在这种情况下。
答案 0 :(得分:0)
您没有发布完整错误,也无法将QString
直接传递给qWarning
。要使用C格式字符串,您需要将其转换为本地编码并将const char*
传递给它,或者更好地使用调试流:
void UserModel::test() {
auto str1 = QStringLiteral("Test");
// preferred
qWarning() << str1;
// acceptable
qWarning("%s", str1.toLocal8Bit().constData());
}