Frage

verbinde ich alle Signale in gtk.builder mit diesem:

ui_builder = gtk.Builder()
ui_builder.add_from_file('main.ui')
self.win_main = builder.get_object('win_main')
ui_builder.connect_signals(self)

Wie kann ich verhindern, / ziehen Sie alle / alle Signale, bitte? (Und Reconnect?)

Vielen Dank im Voraus!

War es hilfreich?

Lösung

gtk.builder bietet connect_signals () als weiterführende Informationen, sobald die Signale verbunden sind, ist es an Ihnen zu programmatisch blockieren oder zu trennen Signale.

Hier ist die PyGTK Dokumentation für beide Sperrsignale und Trennen Handler:

http://www.pygtk.org/pygtktutorial/ch-advancedeventsandsignals.html

Andere Tipps

Was ich in einem solchen Fall zu tun ist manuell das Signal zu verbinden, nicht mit gtk.Builder.connect_signals, da diese Methode nicht wieder ihre Handler-IDs, und ohne dass Handler Sie das Signal nicht manipulieren kann.

In meinem Fall war nur ein paar Signale nicht große Sache.

, was ich jetzt tue. Vergessen gtk.builder.connect_signals

so nach dem Code:

ui_builder = gtk.Builder()
ui_builder.add_from_file('main.ui')
self.win_main = builder.get_object('win_main')

Ich würde dies etwas ähnliches haben:

list_of_handler_ids = []
import libxml2
doc = libxml2.parseFile('main.ui')
ctxt = doc.xpathNewContext()
signals = ctxt.xpathEval('//signal')
for s in signals:
    handler = getattr(self, s.prop('handler'))
    signaller = getattr(self.win_main, s.parent.prop('id'))
    handler_id = signaller.connect(s.prop('name'), handler)
    list_of_handler_ids.append(handler_id)

, die von der Arbeit nach einem ersten Quick-Check zu sortieren scheint.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top