2014-03-31 122 views
1

我使用Glade,Python3,Gtk3构建应用程序。当我打开一个对话窗口并关闭它,我再次收到错误:属性关闭GTK对话窗口

TypeError: on_aboutdialog_destroy() takes 1 positional argument but 2 were given 

我的应用程序是这样的:

#!/usr/bin/env python 

    from gi.repository import Gtk 
    from gi.repository import Gio 
    import sys 

    class Handler: 
     #Main Window 
     def on_mainwindow_destroy(self): 
       print("destroy window") 
       Gtk.main_quit() 

     #Menu items 
     def on_menuquit_activate(self, menuitem): 
       print("quit from menu") 
       Gtk.main_quit() 

     def on_menuabout_activate(self, menuitem, data=None): 
       print("menu about activated") 
       aboutdialog = builder.get_object("aboutdialog") 
       aboutdialog.run() 

     def on_aboutdialog_destroy(self): 
       print("destroy about") 
       aboutdialog.hide() 


    builder = Gtk.Builder() 
    builder.add_from_file("psn.glade") 
    builder.connect_signals(Handler()) 

    window = builder.get_object("mainwindow") 
    window.show_all() 

    Gtk.main() 
+1

很难分辨究竟究竟发生了什么,而不知道什么信号连接,但你有没有尝试做什么错误信息说?定义'def on_aboutdialog_destroy(self,other_argument):' – ptomato

回答

1

我在官方GTK的论坛一些帮助。关闭这样做的工作:

self.ab = self.builder.get_object("aboutdialog") 

    def on_aboutdialog_destroy(self, widget): 
     self.ab.hide()