gtk.Builder способен идентифицировать все сигналы, которые может излучать GUI (описанный в файле XML), и с помощью метода connect_signals () автоматически сопоставляет сигналы и обработчики.Пример:
class Gui(gobject.GObject):
def __init__(self):
self.gui_file = "../data/gui.xml"
builder = gtk.Builder()
builder.add_from_file(self.gui_file)
builder.connect_signals(self)
def on_whatever_gui_event(self, widget, data=None):
...
В моем приложении у меня есть другие сигналы, которые генерируются объектами не-GUI (это моя Модель [как в шаблоне MVC], которая испускает сигнал, когда его внутреннее состояние изменяется), но этодолжен обрабатываться GUI.
Я пытаюсь найти метод, который позволил бы мне автоматически подключаться к экземпляру Gui также мои пользовательские сигналы. InДругими словами, я пытаюсь не вручную подключать каждый сигнал к его обработчику.В идеале окончательный код должен выглядеть следующим образом:
class Gui(gobject.GObject):
def __init__(self, model_instance):
self.gui_file = "../data/gui.xml"
builder = gtk.Builder()
builder.add_from_file(self.gui_file)
builder.add_signals_from_my_object(model_instance)
builder.connect_signals(self)
def on_whatever_gui_event(self, widget, data=None):
...
def on_whatever_model_event(self, widget, data=None):
...
Существует ли стандартный способ [py] GTK для достижения этого или мне нужно написать собственный дочерний класс gtk.Builder?
Заранее спасибо за ваше время!