2017-11-02 1 views
0

그건 내가 처음에 그것을 시도하는 방법이다하지만 난 오류가 발생하면 직접 nameList를 공급되지 않습니다Qt의 QTextStream을 사용하여 QList 저장 항목을 작성하는 방법은 무엇입니까?

QList<QString>lNamesList; 

    void write(){ 

     QFile data("E:/Test/output.h"); 

     if (data.open(QFile::WriteOnly)) 
    { 
      QTextStream out (&data); 

     nameList.append("Name1"); 

      out << NameList; 

     } 
    } 
int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 

    write(); 

    return a.exec(); 
} 
+0

'QTextStream'는'QList'에서 작동하지 않습니다,하지만 당신은 쓸 수 있습니다 자신 만의 간단한 루프 또는 문제는 무엇입니까? 'NameList; out을'for (const QString & name : nameList)로 대체하십시오. << name;' – xander

+0

감사합니다. 그것은 당신이 말했듯이 루프로 작업했지만 대신 foreach로 변경했습니다. –

답변

1

"어떤 연산자는 그 유형의 왼쪽 피연산자 'QTextStream'을 취하거나 어떤 허용 전환이없는 찾을 수 없습니다" QTextStream에 당신은 그것을 string or QString 줄 수 있습니다.

for(const QString& str : nameList){ 
    out << str; 
} 

참고 : 그래서 당신은 다음과 같이 보일 것이다 당신의 QList을 통해 루프 할 수 있습니다 더 많은 정보를 원하시면 the docs 참조

+0

맞습니다. 내 목록을 Qtextstream에 공급할 수 없습니다. 하지만 for 루프도 계속 오류가 발생했습니다. 그래서 나는 foreach 루프로 이것을 고쳤다. foreach (const QString & str, NameList) { out << str; } –

+0

C++ 11 이후로 각 루프에 대한 C++은 "new"입니다. 사용중인 것은 Qt 고유의 이전 스타일 매크로입니다. 여전히 사용할 수 있지만 새로운 구문 기능을 사용하는 경우 표준 C++이 일반적으로 선호됩니다. Qt 프로젝트 설정 파일에서 새로운 C++ 버전을 사용하고 싶다면 기본적으로 활성화되지 않은 것 같습니다. 컴파일러가 지원한다면'CONFIG + = C++ 11'. – xander

관련 문제