sequentielle ausführung

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
sylpheed
User
Beiträge: 40
Registriert: Dienstag 24. März 2009, 13:58

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.
Zuletzt geändert von sylpheed am Dienstag 19. Mai 2009, 20:06, insgesamt 2-mal geändert.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Code: Alles auswählen

eingabe = raw_input("Gib was ein: ")
:?:
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
sylpheed
User
Beiträge: 40
Registriert: Dienstag 24. März 2009, 13:58

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.
BlackJack

Das Stichwort heisst "modaler Dialog" also ein Dialog, der solange keine Eingaben in anderen Fenstern ermöglicht, solange er offen ist.
sylpheed
User
Beiträge: 40
Registriert: Dienstag 24. März 2009, 13:58

deluxe!!! vielen dank für deine schnelle hilfe. werde es gleich testen.
sylpheed
User
Beiträge: 40
Registriert: Dienstag 24. März 2009, 13:58

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.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

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.
sylpheed
User
Beiträge: 40
Registriert: Dienstag 24. März 2009, 13:58

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.
Antworten