Seite 1 von 1
QWidget schliessen und Wert übergeben
Verfasst: 28. November 2006 11:39
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
Verfasst: 28. November 2006 12:32
von guenni81
Mittels einer Get Methode...
Verfasst: 28. November 2006 12:45
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
Verfasst: 28. November 2006 13:26
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
Verfasst: 28. November 2006 17:02
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...
Verfasst: 29. November 2006 10:26
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
