Selektierten Dateipfad in einen Text edit anzeigen lassen

Du bist neu in der Welt von C++? Dann schau hier herein!
Mr.Undercover
Beiträge: 68
Registriert: 28. Oktober 2008 23:44

Beitrag von Mr.Undercover »

jemand da ?
----------------------------------------------------------

Ich bedanke mich im voraus für eure Mühe...

MfG
erpheus
Beiträge: 46
Registriert: 18. November 2008 11:55
Wohnort: Stuttgart

Beitrag von erpheus »

Kleine C-Nachhilfe:

In deinem geposteten Header steht:

Code: Alles auswählen

 QString *directory2; 
das ist also ein Memberpointer.

In deinem Sourcefile steht:

Code: Alles auswählen

 QString directory2 = QFileDialog::getOpenFileName(this,
tr("Find Files"), QDir::currentPath()); 
hier erster Fehler: Warum deklarierst Du directory2 hier neu und gibt getOpenFileName einen Pointer oder was andres zurück? Entsprechend musst Du die Dekleration im Header anpassen.

In deiner Fehlermeldung steht:
Reason: cannot convert from 'QString *' to 'const QString'
Naja überprüf mal ob setText wirklich nen Pointer will, weil da wird mal wieder dein Memberpointer übergeben und der hat nix mit der Variablen zu tun in der Du den String gespeichert hast.

Tip:
1. Bennen alle Membervariablen von Anfang an mit m_Name und alle Memberpointer mit mp_Name. Es iwr dannn übersichtlicher und einfacher.
2. Lies dringenst C++ Grundlagen im Kapitel "gültigkeitsbereich von Variablen"
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Beitrag von archer »

Zu meinem Beispiel:

dir enthält nur einen Text wenn du den Dialog mit Ok beendest.
Mr.Undercover
Beiträge: 68
Registriert: 28. Oktober 2008 23:44

Beitrag von Mr.Undercover »

Vielen Vielen dank... Es lag wirklich am Memberpointer :-)

Nun ne andere Frage, wieso hat das mit dem Memberpointer nicht Funktioniert ? bzw. was hats den gemacht als ich es mit dem Memberpointer machen wollte....
----------------------------------------------------------

Ich bedanke mich im voraus für eure Mühe...

MfG
erpheus
Beiträge: 46
Registriert: 18. November 2008 11:55
Wohnort: Stuttgart

Beitrag von erpheus »

Gleich zu Beginn:
Lies meinen letzten Thread nochmal. Danach lies ihn nochmal. Und dann noch ein drittes mal.
Jetzt beherzigst Du die Tips die ich Dir gegeben hab und dann sollte dein Frage sich erübrigen und Du solltest auf folgende Erklärung kommen.

Du hast zwei Variablen directoy2 und directory2. Klingt komisch hattest Du aber so gemacht. Worin unterscheiden die sich nun? Im Namen wohl nicht. Aber in Ihrer deklaration.

es gibt QString *directory2 und QString directory2. Also einmal als Pointer und einmal eben normal.
Aber es gibt noch einen Unterschied. Der Ort wo sie deklariert wurden. Der Pointer ist ein Member das andere eine lokale Variable innerhalb einer Funktion. Die hast Du dort beschrieben und wo anders dann wieder den Memberpointer verwendet. Da wo Du den Memberpointer verwendet hast, bist Du davon ausgegangen das die änderung der loalen Variable den Pointer ändert.
Warum sollte das gehen, das sind zwei unterschiedliche Variablen die abgesehen vom gleichen Namen nichts gemeinsam haben.

Daher nochmal mein Tip:
1. Lies Dich unbedingt nochmal in das C++ Kapitel Gültigkeitsbereich von Variablen ein.
2. Bennen alle Membervariablen von Anfang an mit m_Name und alle Memberpointer mit mp_Name. Es wird dannn übersichtlicher und einfacher.
Antworten