2017-11-02 1 views
0

Das ist, wie ich es zuerst versucht, aber ich erhalte eine Fehlermeldung „gefunden kein Betreiber, dass nimmt einen linken Operanden vom Typ‚QTextStream‘oder gibt es keine akzeptable Umwandlung“Wie schreibe ich QList Gespeicherte Elemente mit qt's QTextStream?

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' funktioniert nicht auf einem' QList', aber man kann schreiben Ihre eigene einfache Schleife dafür, oder was ist das Problem? Ersetzen Sie 'out << NameList;' mit 'für (const QString & name: nameList) aus << Name;' – xander

+0

Vielen Dank und Sie haben Recht. es funktionierte mit einer Schleife, wie Sie sagten, aber änderte es in foreach anstatt für –

Antwort

1

Sie nicht direkt Ihre nameList füttern zu Ihrem QTextStream. Sie können es eine string or QString geben. So können Sie eine Schleife über die QList mögen, welche in etwa so aussehen würde:

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

Anmerkung: siehe the docs für weitere Informationen

+0

Sie haben Recht. Ich konnte meine Liste nicht in Qtextstream einspeisen. Aber ich habe immer wieder einen Fehler mit der for-Schleife bekommen. also reparierte ich es mit einer foreach-Schleife wie dieser. foreach (const QString & str, NameList) { out << str; } –

+0

Das C++ für jede Schleife ist "neu" seit C++ 11, was Sie verwenden, ist das Qt-spezifische Old-Style-Makro. Sie können es immer noch verwenden, aber C++ wird normalerweise bevorzugt, wenn Sie die neuen Syntaxfunktionen verwenden. Wenn Sie die neuen C++ - Versionen, die Sie in Ihrer Qt-Projekteinstellungsdatei verwenden können, verwenden möchten, ist dies meines Erachtens immer noch nicht standardmäßig aktiviert. 'CONFIG + = C++ 11', wenn Ihr Compiler dies unterstützt. – xander

Verwandte Themen