Seite 1 von 1

file schreibe bei exit

Verfasst: 15. April 2010 14:50
von hustalicious
Hallo zusammen

Meine Frage ist: Wie kann ich ein File schreiben, nachdem ich auf das "X" in meinem Hauptfenster klicke? bzw. wo muss ich diesen Programmteil platzieren?

Verfasst: 15. April 2010 15:01
von franzf
closeEvent() implementieren und da dein File speichern.
Ansonsten geht das natürlich (wie überall) auch im entsprechenden Destruktor ;)

Verfasst: 15. April 2010 15:37
von hustalicious
hey danke!¨

eine reimplementation von closeEvent() hats gebracht.

Verfasst: 15. April 2010 16:02
von hustalicious
hallo nochmal..

hat sich gleich ne andere Frage ergeben... Habe den folgenden code in der closeEvent routine.

Code: Alles auswählen

QByteArray ba = mXml->toByteArray(2);
    if(!mFile.write(ba))
    {   cout << "did not write file" << endl;
    }
    if(!mFile.flush())
    {   cout << "did not flush file" << endl;
    }

    QTextStream ts(&mFile);
    ts << mXml->toString(2) << endl;
der programmteil wird durchlaufen und das QDomDocument mXml enthält auch das gesamte xml file das habe ich schon kontrolliert. Nur wird nichts in mein File geschrieben???

error gibts auch keine

Verfasst: 15. April 2010 16:29
von kater
Mehr Code.

Verfasst: 15. April 2010 17:07
von franzf
Warum denn so verdammt kompliziert? QDomDocument erbt von QDomNode. Da gibt es einen "operator<<". Den darfst du auch benutzen!

Code: Alles auswählen

// QDomDocument doc; <- dein Dokument
QFile file("here/goes/file.xml");
if( file.open(QFile::WriteOnly) ) {
    QTextStream stream(&file);
    stream << doc;
}
Viel einfacher, oder?