Seite 1 von 1

sequentielle ausführung

Verfasst: Donnerstag 14. Mai 2009, 12:33
von sylpheed
ich suche nach einer möglichkeit, den verlauf eines programmes so lange zu unterbrechen, bis ich z.b. eine bestimmte eingabe habe.

am liebsten hätte ich es, wenn ich irgendwo ne unterbrechung einbauen könnte, die dann auf gelöst wird, wenn die eingabe kommt. würde auch gerne vermeiden, dass ganze durch eine schleife zu erreichen oder durch verschachtelungen. gibt es da etwas was mir weiterhelfen könnte.

danke im voraus.

Verfasst: Donnerstag 14. Mai 2009, 13:00
von Rebecca

Code: Alles auswählen

eingabe = raw_input("Gib was ein: ")
:?:

Verfasst: Montag 18. Mai 2009, 13:24
von sylpheed
sry, habe das schlecht beschrieben:

function_eingabe() #öffnet ein NEUES fenster mit entry-feld
function_nach_eingabe() # bezieht sich auf das alte fenster, wird
ausgeführt, sobald function_eingabe "sein" fenster erzeugt hat, soll aber
erst aufgerufen werden, sobald auch die eingabe getätigt wurde.

Verfasst: Montag 18. Mai 2009, 13:28
von BlackJack
Das Stichwort heisst "modaler Dialog" also ein Dialog, der solange keine Eingaben in anderen Fenstern ermöglicht, solange er offen ist.

Verfasst: Montag 18. Mai 2009, 13:50
von sylpheed
deluxe!!! vielen dank für deine schnelle hilfe. werde es gleich testen.

Verfasst: Dienstag 19. Mai 2009, 20:10
von sylpheed
mmmmmmmmmm, habe mich zu früh gefreut. die eingabe möglichkeit anderer fenster wird zwar eingefroren, nur leider läuft meine code fröhlich weiter. ich bräuchte etwas, dass die ganze anwendung in einer schleife hält oder auf "pause setzt", solange ich die eingabe nicht gemacht habe. nur, dass ich da keine schleife hinsetzen möchte.

Verfasst: Dienstag 19. Mai 2009, 21:12
von jerch
Wahrscheinlich zäumst Du das Pferd falsch auf. Eine Gui-Anwendung sollte eigentlich immer "fröhlich" weiterlaufen und niemals komplett einfrieren, da der Gui-Event-Loop aktiv bleiben muß. Anderfalls hast Du in einer Fensterumgebung so tolle Effekte wie leere graue Kästen nach Fokuswechsel etc. Ein Zustand, wo jeder sofort an Programmabsturz denkt.

Zur Lösung des Problems:
Weiterer Programmfluß in eine Methode packen, die durch ein Ergeignis des Dialoges getriggert wird. Wobei die genaue Umsetzung von der Problemstellung abhängt, was sich ohne Code nicht genauer beantworten läßt.

Verfasst: Donnerstag 21. Mai 2009, 10:04
von sylpheed
def case_button_cb(self, widget):
self.dialog_entry('title', 'message')
self.treeview_adjust(self.num, self.path)

wobei self.num erst über self.dialog_entry() zugewiesen wird. es wäre also genial, wenn nur das dialog-window laufen würde und das main-window auf dessen deaktivierung warten würde.