Roo*_*t0x 2 c++ qstring qt qtcore
我想为我添加一个新行QString.我尝试使用\n,但是我收到了"预期表达"的错误.我的代码示例如下:
if (ui->lineEdit_Company_Name->text().isEmpty())
ErrorLog = ErrorLog + "Company Name is empty", \r\n;
if(ui->lineEdit_Company_Owner->text().isEmpty())
ErrorLog = ErrorLog + "Company Owner is empty", \r\n;
Run Code Online (Sandbox Code Playgroud)
lpa*_*app 10
您需要使用操作符+,的push_back,追加或其他方式使用时追加std::string,QString等等.逗号(',')不是串联字符.因此,写下这个:
if (ui->lineEdit_Company_Name->text().isEmpty())
ErrorLog = ErrorLog + "Company Name is empty\n";
if(ui->lineEdit_Company_Owner->text().isEmpty())
ErrorLog = ErrorLog + "Company Owner is empty\n";
Run Code Online (Sandbox Code Playgroud)
还请注意,\n在这种情况下,如果需要,可以根据文件,GUI控件等确定平台相关的行结束.Qt将通过常规标准手段,API或者如果需要,它将自行解决.
公平地说,您可以进一步简化它:
if (ui->lineEdit_Company_Name->text().isEmpty())
ErrorLog += "Company Name is empty\n";
// or ErrorLog.append("Company Name is empty\n");
// or ErrorLog.push_back("Company Name is empty\n");
if(ui->lineEdit_Company_Owner->text().isEmpty())
ErrorLog += "Company Owner is empty\n";
// or ErrorLog.append("Company Owner is empty\n");
// or ErrorLog.push_back("Company Owner is empty\n");
Run Code Online (Sandbox Code Playgroud)
实际上,当你使用常量字符串时,值得考虑使用QStringLiteral,因为如果编译器支持相应的C++ 11特性,它会构建字符串编译时间.
我同意lpapp你应该简单地将它合并'\n'到你要追加的字符串文字中.所以:
if (ui->lineEdit_Company_Name->text().isEmpty()){
ErrorLog += "Company Name is empty\n";
}
if(ui->lineEdit_Company_Owner->text().isEmpty()){
ErrorLog += "Company Owner is empty\n";
}
Run Code Online (Sandbox Code Playgroud)
但是我还要提到,不仅仅是Qt,而且C++通常会转换'\n'为适合您平台的正确行.有关详细信息,请参阅此链接:http://en.wikipedia.org/wiki/Newline#In_programming_languages
| 归档时间: |
|
| 查看次数: |
21749 次 |
| 最近记录: |