Что шаги должны преобразовать из использования libglade к GtkBuilder? (Python)

Если возвращенное file реализует io.Closer (то есть, если у него есть метод Close), предположим, что вы несете ответственность за его закрытие, если в документации явно не указано иное.

5
задан lfaraone 14 April 2009 в 21:00
поделиться

1 ответ

Вы нужно использовать gtk.Builder вместо этого. Этот класс может загружать любое количество файлов пользовательского интерфейса, поэтому вам нужно добавить их вручную, либо в виде файлов, либо в виде строк:

self.uifile = "sdm.ui"
self.wTree = gtk.Builder()
self.wTree.add_from_file(self.uifile)

Вместо get_widget , просто используйте get_object на компоновщике class:

self.window = self.wTree.get_object("MainWindow")
if self.window:
    self.window.connect("destroy", gtk.main_quit)

Чтобы соединить сигналы, просто используйте connect_signals , который также принимает словарь:

dic = { "on_button1_clicked" : self.button1_clicked, 
    "on_MainWindow_destroy" : gtk.main_quit}
self.wTree.connect_signals(dic)

Раньше это было так (по крайней мере, в GTK + 2.12, не уверен, что он все тот же) чтобы вы могли вызывать connect_signals только один раз, любые сигналы, которые не были подключены во время первого вызова, никогда не будут подключены. На поляне все было по-другому, поэтому будьте осторожны, если раньше использовали эту функцию.

11
ответ дан 18 December 2019 в 10:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: