Problem mit QFile

Alles rund um die Programmierung mit Qt
Antworten
Algorithm93
Beiträge: 26
Registriert: 24. April 2011 10:37

Problem mit QFile

Beitrag von Algorithm93 »

Hallo,

ich habe zum Einstieg ein einfaches Programm geschrieben.
Es soll eine .txt Datei einlesen und derren Inhalt auf einem QTextEdit anzeigen.
Ich arbeite mit QtCreator + Qt Version 4.7.0 unter OpenSuse 11.3.

Hier ein Code-Auszug:

Code: Alles auswählen

QFile Datei("test.txt");
Datei.open(QIODevice::ReadOnly | QIODevice::Text);
ui->textEdit->setPlainText(Datei.readAll());
Datei.close();
Wenn ich im QtCreator auf den grünen Pfeil klicke, um zu compilieren und das Programm zu starten, funktioniert alles, wie es soll.
Beende ich allerdings den QtCreator und starte das Programm vom Ordner heraus, dann öffnet es sich zwar, aber wenn ich den "pushButton" klicke passiert einfach garnichts.... :-(

Woran kann das liegen?

Gruß und Danke
Algorithm93
ScyllaIllciz
Beiträge: 200
Registriert: 9. Juli 2010 19:31

Re: Problem mit QFile

Beitrag von ScyllaIllciz »

Ich schon mal getestet was open() zurück liefert?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Re: Problem mit QFile

Beitrag von upsala »

Wahrscheinlich wird die Datei dann nicht gefunden. Für sowas baut man sich ja auch Debuggingausgaben ein. Aber wahrscheinlich liegt die Datei nicht im selben Verzeichnis wie das Binary. Aber probier es einfach mal mit absoluten Pfaden.
Algorithm93
Beiträge: 26
Registriert: 24. April 2011 10:37

Re: Problem mit QFile

Beitrag von Algorithm93 »

Hallo,

Danke für die Antworten,
Es liegt tatsächlich daran, dass die Datei nicht gefunden wird. (open() gibt 0 zurück).
Wenn ich den Pfad in /home/<Benutzername>/C++/test.txt ändere, funktioniert es immer.
Aber warum ist das so? Die Datei ist garantiert im selben Ordner, wie das Programm...

Außerdem finde ich das unschön, denn was ist, wenn ich das Programm samt test.txt verschiebe?

Gibt es eine Möglichkeit den Pfad zum Binary auszulesen, damit ich im Programm den absoluten Pfad "basteln" kann (zur Laufzeit)?

Gruß
Algorithm93
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Re: Problem mit QFile

Beitrag von upsala »

Ratespiel: Wo muß die Datei liegen wenn das Binary so aufgerufen wird.

~/binary
/home/user/binary
./binary
/usr/bin/binary
ScyllaIllciz
Beiträge: 200
Registriert: 9. Juli 2010 19:31

Re: Problem mit QFile

Beitrag von ScyllaIllciz »

Suchst Du das hier?
Algorithm93
Beiträge: 26
Registriert: 24. April 2011 10:37

Re: Problem mit QFile

Beitrag von Algorithm93 »

Ja, cool, Problem gelöst!

Ich füge nun einfach QCoreApplication::applicationDirPath() davor.

Danke!

Gruß
Algorithm93
Antworten