QString New Line

QString New Line

本文关键字:Line New QString      更新时间:2023-10-16

我想在我的QString中添加一个新行。我尝试使用n,但是收到"预期表达式"错误。我的代码示例可以在下面找到:

if (ui->lineEdit_Company_Name->text().isEmpty())
    ErrorLog = ErrorLog + "Company Name is empty", rn;
if(ui->lineEdit_Company_Owner->text().isEmpty())
    ErrorLog = ErrorLog + "Company Owner is empty", rn;

使用 std::stringQString 等时,需要使用运算符+、push_back、追加或其他一些方式进行追加。逗号 (',') 不是串联字符。因此,写下这个:

if (ui->lineEdit_Company_Name->text().isEmpty())
    ErrorLog = ErrorLog + "Company Name is emptyn";
if(ui->lineEdit_Company_Owner->text().isEmpty())
    ErrorLog = ErrorLog + "Company Owner is emptyn";

另请注意,如果需要,在这种情况下,n足以确定文件、GUI 控件等的平台相关行端。Qt将通过常规的标准手段,API,或者如果需要,它将自行解决。

公平地说,您可以进一步简化它:

if (ui->lineEdit_Company_Name->text().isEmpty())
    ErrorLog += "Company Name is emptyn";
    // or ErrorLog.append("Company Name is emptyn");
    // or ErrorLog.push_back("Company Name is emptyn");
if(ui->lineEdit_Company_Owner->text().isEmpty())
    ErrorLog += "Company Owner is emptyn";
    // or ErrorLog.append("Company Owner is emptyn");
    // or ErrorLog.push_back("Company Owner is emptyn");

实际上,当您使用常量字符串时,值得考虑使用 QStringLiteral,因为如果编译器支持相应的 C++11 功能,它会构建字符串编译时。

我同意 lpapp 的观点,您应该简单地将'n'合并到要附加的字符串文字中。所以:

if (ui->lineEdit_Company_Name->text().isEmpty()){
    ErrorLog += "Company Name is emptyn";
}
if(ui->lineEdit_Company_Owner->text().isEmpty()){
    ErrorLog += "Company Owner is emptyn";
}

但我还想提一下,不仅仅是Qt,而且一般C++翻译,'n'为您的平台提供正确的行尾。有关详细信息,请参阅此链接:http://en.wikipedia.org/wiki/Newline#In_programming_languages

您也可以

按如下方式使用endl

ErrorLog += "Company Name is empty" + endl;