Seite 1 von 1

Event abbrechen

Verfasst: Mittwoch 26. März 2008, 22:57
von Jochen Skulj
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

Verfasst: Mittwoch 26. März 2008, 23:34
von Trundle
Mit `emit_stop_by_name` kann man Signalausbreitung stoppen.

Verfasst: Donnerstag 27. März 2008, 07:15
von Jochen Skulj
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