[Qt Anfänger] Datei öffnen mit Qt - anders als unter ANSI C++



  • Hallo,

    öffne ich mit Qt anders als mit "ifstream" unter ANSI C++?
    Ist "QFileOpenEvent" das richtige, und wenn ja, wie wird es angewandt? Vielleicht habt ihr ein kleines Beispiel, inkl. Einlesen von Zeilen (INTs, FLOATs, STRINGs).



  • Qt Assistant öffnen, dort nach QFile suchen und die Detailed Description lesen.

    Wg. QFileOpenEvent:
    Events haben mit Datei öffnen gar nichts zu tun. Das ist etwas ganz spezielles für Mac, weshalb auch dick drunter steht:

    Note: This class is currently supported for Mac OS X only.



  • Ich Danke Dir, das läuft soweit ganz gut!
    Nun möchte ich vorerst die Zeilen aus der Datei in einem listWidget ausgeben:

    QFile file("C:\\Users\\Tobias\\qt\\rpg01\\in.txt");
        if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
            return;
    
        QByteArray line;
    
        while (!file.atEnd()) {
            line = file.readLine();
        }
        for(unsigned int i=1;i < sizeof(line); i++)
        {
            ui->listWidget->addItem(QString(line[i]);
        }
    

    Mir fehlt der richtige Parameter / Funktion für QString. Wie kann ich line[i], welches mal int, mal string, mal float in der Datei ist, einfach in Text/String wandeln und ausgeben? Ich habe nun schon soviele Funktionen durch und auch gesucht, aber bisher läuft das nicht.
    Ein Tipp?



  • Versuch es doch mal mit QTextStream statt QByteArray, dann kriegst du auch in jeder Zeile mit readLine() ein QString zurückgeliefert.



  • Könnte mir jemand mein komplettes Beispiel mit QTextStream korrigieren? Denn ich verstehe die Anwendung noch nicht ganz, denke aber, dass mit "in >> readLine()" gearbeitet wird, oder?



  • Lies doch bitte die Doku! Da ist bei QFile unter "Using Streams to Read Files" ein wunderbares Beispiel zu finden.


Anmelden zum Antworten