2

如何组织我的应用程序的处理程序,以便我的应用程序不会只有一个类?更准确地说,我的应用程序目前按以下方式组织:

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) 时出现问题,它只连接我的主窗口的信号而不是应用程序的其余部分。

4

1 回答 1

1

我找到了解决问题的方法,我没有使用 GtkBuilder,而是使用了不同格式的 glade 文件(libglade),并用 signal_autoconnect 替换了 connect_signals:

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) 
于 2013-06-06T15:40:33.480 回答