QWidget schliessen und Wert übergeben

Alles rund um die Programmierung mit Qt
Antworten
flownfluid
Beiträge: 80
Registriert: 6. Januar 2005 12:54

QWidget schliessen und Wert übergeben

Beitrag von flownfluid »

Hallo zusammen,

ich kann in meinem QMainWindow ein Dialog starten. In diesem Dialog fülle ich eine Maske aus (lauter Integer).
Ziel wäre es nun, sobald ich diesen Dialog schliesse, diese Integer(gespeichert in einem Vektor) an das QMainWindow zurückzugeben.

Wie kann man den Vektor am besten zurückgeben?

Gruss
guenni81
Beiträge: 134
Registriert: 29. Juli 2006 02:22

Beitrag von guenni81 »

Mittels einer Get Methode...
mfg
Günni
flownfluid
Beiträge: 80
Registriert: 6. Januar 2005 12:54

Beitrag von flownfluid »

Habe einwenig mühe mit der Antwort, da sie relativ kurz ausfällt :(

Ich möchte eigentlich kein Member des Dialoges in meiner Applikation haben.

Ich denka da an Events zu senden oder mit Signal und Slots zu arbeiten... Leider weiss ich nicht wie.

Gruss
dontinelli
Beiträge: 146
Registriert: 22. September 2006 20:53

Beitrag von dontinelli »

Hallo flownfluid

Ist vielleicht nicht der eleganteste Ansatz, ich mache es aber jeweils so:

Bei wenigen Variablen würde ich vor dem schliessen des Dialogs eine Funktion des MainWindow aufrufen (ist z.B. über connect(sender, signal, receiver, slot) möglich) und die Variablen als Attribut übergeben. Sind es viele, würde ich die Übergabe mittels Array, Vektor, Klasse oder was in deinem Kontext halt das beste ist, machen.

Je nach Inhalt der Variablen (zu speichernde Konfigurationen) kann sich auch ein Abspeichern in einer Datei oder mit QSettings empfehlen.

LG
Don Tinelli
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Wenn du nicht weist, wie man mit Signal/Slots arbeitet dann würde ich mir zumindest mal die Dokumentation dazu durchlesen und ein paar kleiner Demos zum testen schreiben. Events würde ich nicht mehr verwenden, da du ja den Receiver kennen mußt. Wobei die Get-Methoden die leichtesten wären...
flownfluid
Beiträge: 80
Registriert: 6. Januar 2005 12:54

Beitrag von flownfluid »

Habe es nun folgendermassen gelöst:

Übergebe am anfang meinem Dialog eine Enumeration, so das der Dialog weiss von welchem Window er aufgerufen wird.

Beim Schliessen des Dialoges kaste ich mit hilfe der Enumeration und der parent() Funktion auf das aufgerufene Window und rufe dort eine set- Methode auf...

Gruss ;-)
Antworten