Event abbrechen

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
Jochen Skulj
User
Beiträge: 9
Registriert: Samstag 5. März 2005, 18:57
Kontaktdaten:

Ich möchte einen Event quasi »abbrechen«. Wenn ich etwa einen Ok-Klick verarbeite, möchhte ich prüfen, ob die Felder richtig ausgefüllt sind und wenn das nicht der Fall ist, soll eine Fehlermeldung erscheinen und der Dialog offen bleiben.

Anzumerken ist, dass es sich um einen Dialog handelt, den ich etwa mit dlg.run() öffne.

Meine Callback-Methode sieht etwa so aus:

Code: Alles auswählen

	
def okButtonClicked(self, widget):
		"""
		handles the signal of clicking th e OK-button
		Parameters:
			- widget: widget that emitted the signal
		"""
		text = self._entryTitle.get_text()
		if text == None or len(text) == 0:
			self.showError(_("Title must be set."))
Ursprünglich bin ich davon ausgegangen, dass ich genau das erreichen kann, wenn ich True als Ergebnis der Callback-Funktion zurückgebe, aber das habe ich wohl falsch verstanden.

Kann mir jemand einen Tipp geben, wie ich die Verarbeitung eines Events in einem Dialog abbrechen kann oder aber vielleicht das Response-Ergebnis beinflussen kann?

Danke, Jochen
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Mit `emit_stop_by_name` kann man Signalausbreitung stoppen.
Jochen Skulj
User
Beiträge: 9
Registriert: Samstag 5. März 2005, 18:57
Kontaktdaten:

Vielen Dank, der Hinweis hat mir geholfen. Nach einigem Ausprobieren habe ich herausgefunden, dass man eine solche Prüfung besser im response-Signal abarbeiten kann, aber nun klappt es.

Danke, Jochen
Antworten