【问题标题】:Gtkbuilder connect signals organizationGtkbuilder 连接信号组织
【发布时间】:2013-06-06 23:40:33
【问题描述】:

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

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

【问题讨论】:

    标签: python gtk


    【解决方案1】:

    我找到了解决问题的方法,我没有使用 GtkBuilder,而是使用了不同格式的 glade 文件 (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) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-07
      相关资源
      最近更新 更多