Hallo,
folgende Situation: Ich rufe in meinem Programm einen gtk.Dialog auf(nicht über einen Buttonklick, sprich z.B. einem `clicked' event, sondern direkt aus dem Programm heraus). In diesem Dialog soll etwas eingegeben werden, was ich dann zurückgeben und damit weiterarbeiten will. Allerdings läuft mein Programm heiter weiter, ohne zu warten.
Wie stell ich an das es warten?
LG Tobsl
Auf Dialog-Rückgabewert warten.
Moin,
ich denke, das was du suchst ist eine Form des modalen Dialogs mit einer eigenen Mainloop. Schau dir mal den Code im Link an, das sieht prinzipiell ganz vielversprechend aus, auch wenn ich es selber nicht getestet habe:
http://mail.python.org/pipermail/python ... 55995.html
ich denke, das was du suchst ist eine Form des modalen Dialogs mit einer eigenen Mainloop. Schau dir mal den Code im Link an, das sieht prinzipiell ganz vielversprechend aus, auch wenn ich es selber nicht getestet habe:
http://mail.python.org/pipermail/python ... 55995.html
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo CrackPod!CrackPod hat geschrieben:Allerdings läuft mein Programm heiter weiter, ohne zu warten.
Das funktioniert mit der Methode ``run()`` des Dialogs. Damit wird gewartet bis vom Dialog zurück gekehrt wird.
http://www.pygtk.org/docs/pygtk/class-g ... ialog--run
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wunderbar Genau das was ich gesucht habe. Dankeschön.
Noch eine kleine Frage, kann ich wenn ich response aufrufe, als response_id jeden beliebigen Wert nehmen, oder wird der durch einen generierten überschrieben?
Noch ne andere Frage: wie kann ich denn von einem Dialog etwas zurückgeben lassen? Also, wenn ich den ganzen Dialog in einer Funktion/Methode hab. Z.B.:Geht das so, oder muss ich mir was anderes einfallen lassen?
Edit:
Ich habs in der pygtk Demo gefunden
Pseudocode
LG
Noch eine kleine Frage, kann ich wenn ich response aufrufe, als response_id jeden beliebigen Wert nehmen, oder wird der durch einen generierten überschrieben?
Noch ne andere Frage: wie kann ich denn von einem Dialog etwas zurückgeben lassen? Also, wenn ich den ganzen Dialog in einer Funktion/Methode hab. Z.B.:
Code: Alles auswählen
return_val = popup_dialog()
Edit:
Ich habs in der pygtk Demo gefunden
Pseudocode
Code: Alles auswählen
def popup_dialog():
dialog = gtk.Dialog('Insert a value', None, 0, (gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
entry = gtk.Entry()
dialog.vbox.pack_start(entry)
response = dialog.run()
if response == gtk.RESPONSE_OK:
return entry.get_text()
dialog.destroy()
val = popup_dialog()
Hi! I'm a .signature virus! copy me into your .signature file to help me spread!