У меня есть графический интерфейс пользователя glade, и я хочу вставить другой объект, используя файл glade.
Когда я делаю это, как показано ниже (это, по сути, то, что я делаю), целое приложение зависает и self.show () и максимально загружает процессор на 100%. Если я заменю первую строку своей init () на self.builder = gtk.Builder (), то приложение запустится, я могу установить виджеты, то есть: установить содержимое записей, установить и изменить значения ComboBoxes. Но я не могу отвечать на сигналы, нажатия кнопок никогда не вызывают обработчик.
В реальном коде объект два установлен как страница в записной книжке, и у меня есть несколько других страниц, gtk.main () находится в объекте, который владеет записной книжкой. Все это работает, как и ожидалось, это просто объект, который выходит из строя.
Есть какие-нибудь подсказки? Я пытался вызвать self.builder.connect_signals () для каждого виджета, но он все равно не замечает их.
class one(gtk.VBox):
def __init__(self, builder):
gtk.VBox.__init__(self)
self.builder = builder # if this is self.builder = gtk.Builder() app runs but widget signals go missing.
self.builder.add_from_file("ui_for_one.glade")
self.show() # Endless loop here?
class two(object): # This is the page in a notebook.
def __init__(self):
self.builder = gtk.Builder()
self.builder.add_from_file("ui_for_two.glade")
self.some_container = self.builder.get_object("some_container")
self.one = one(self.builder)
self.some_container.pack_start(self.one, False, False)