我如何组织我的应用程序的处理程序,这样我的应用程序就不会只有一个类?更准确地说,我的应用程序目前按以下方式组织:
class main_application(object):
def handler1():
...
def handler2():
...
#lots of handlers...
def __init__(self):
self.builder = gtk.Builder()
self.builder.add_from_file("gui.ui")
self.builder.connect_signals(self)
#build window
#....
#tab 1
#tab 2
#and etc..
self.builder.connect_signals(self)
self.gtk_main_window.show_all()
if __name__ == '__main__':
main_application()
gtk.main()
所以我的问题是我想为我的应用程序的每个选项卡(GtkNotebook)/处理程序创建一个类但是我在调用 self.builder.connect_signals(self)时遇到问题,它只连接信号我的主窗口而不是应用程序的其余部分。
请您参考如下方法:
我找到了解决问题的方法,我没有使用 GtkBuilder,而是使用了不同格式的空地文件 (libglade),并将 connect_signals 替换为 signal_autoconnect:
def __init__(self):
self.gladefile = "gui.glade"
self.builder = gtk.glade.XML(self.gladefile, "gtk_main_window")
self.gtk_main_window = self.builder.get_widget("gtk_main_window")
self.builder.signal_autoconnect(self)
