Seite 1 von 1

Python Gtk Signale kurzzeitig Blockieren

Verfasst: Montag 26. März 2018, 12:58
von martinjo
Hallo

Ich habe ein Programm mit einer Oberfläche mit verschiedenen Schaltern und Feldern.

Nun sollen bestimmte Dinge neu berechnet werden sobald ich einen Knopf drücke, aber auch wenn sich ein Feld ändert. Jetzt möchte ich aber erst die Felder mit werten füllen ohne das etwas passiert, und später dann den aktivieren Knopf drücken und dann werden alle Felder geprüft. Ändere ich später nachträglich noch ein Feld soll dieses jedoch wieder die "in_changed" Funktion aufrufen.

Vereinfacht gesagt, ich suche eine Möglichkeit ein Gtk.Entry zu füllen und die Signale des Widgets zu blockieren.

Re: Python Gtk Signale kurzzeitig Blockieren

Verfasst: Montag 26. März 2018, 13:35
von martinjo
Funktioniert hat nun:

Code: Alles auswählen

# storage
self._signal_handlers = []

# connect
handler_id = self.entry.connect("changed", self.on_entry_changed)
self._signal_handlers.append([handler_id, self.entry])

# change entry without signal
for handler, widget in self._signal_handlers:
    widget.handler_block(handler)  
self.entry.set_text("test")  
for handler, widget in self._signal_handlers:
    widget.handler_unblock(handler)