2014-12-23 12 views
2

QString에 새 줄을 추가하고 싶습니다. \n을 사용하려고했지만 "예상 표현식"오류가 발생합니다. 내 코드의 예는 아래에서 확인할 수 있습니다QString 새 줄

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; 
+0

는 Qt는 5.6에서 실제 따옴표 안에'\ n' 또는'\ 연구 \ n'이 필요합니다. –

답변

11

당신은 std::string, QString 등을 사용하는 경우 추가에 대한 operator+, push_back, append 또는 다른 방법을 사용해야합니다. 쉼표 (',')는 연결 문자가 아닙니다. 따라서이 쓰기 :

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"; 

\n 파일, GUI 컨트롤하고 필요한 경우 등의 플랫폼에 의존 라인 끝을 알아낼 이러한 맥락에서 충분히 있습니다. Qt는 일반적인 표준 수단, API 또는 필요할 경우 자체적으로 해결할 것입니다.

공정하게, you could simplify it even further :

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"); 

실질적으로는 상수 문자열을 사용하면 컴파일러가 해당 C의 +를 지원하는 경우는 문자열 컴파일 시간을 빌드로, 그것은 QStringLiteral의 사용을 고려 가치가있다, 말하기 +11 기능.

5

나는 '\n'을 추가 할 문자열 리터럴에 간단히 통합해야한다는 것을 lpapp과 동의합니다. 그래서 :

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"; 
} 

그러나 나는 또한 일반적인를 번역에서뿐만 아니라 Qt는하지만, C++, 올바른 라인에 '\n'이 플랫폼에 종료 언급하고 싶습니다. 추가 정보를 원하시면이 링크를 참조하십시오 :