Noob问题。。。在
class msgbox:
def __init__(self, lbl_msg = '', dlg_title = ''):
self.wTree = gtk.glade.XML('msgbox.glade')
self.wTree.get_widget('dialog1').set_title(dlg_title)
self.wTree.get_widget('label1').set_text(lbl_msg)
self.wTree.signal_autoconnect( {'on_okbutton1_clicked':self.done} )
def done(self,w):
self.wTree.get_widget('dialog1').destroy()
class Fun(object):
wTree = None
def __init__(self):
self.wTree = gtk.glade.XML( "main.glade" )
self.wTree.signal_autoconnect( {'on_buttonOne' : self.one,} )
gtk.main()
@yieldsleep
def one(self, widget, data=None):
self.msg = msgbox('Please wait...','')
yield 500
self.msg = msgbox().done() # <----------------???
self.msg = msgbox('Done!','')
我得到一个错误: messageBox().done() TypeError:done()只接受2个参数(给定1个)
在第二个显示“完成”的对话框之前,如何关闭带有“请稍候”的对话框??在
谢谢。在
您选择如下定义
done
方法:所以它确实需要两个参数,即您调用它的
^{pr2}$msgbox
实例,以及第二个神秘的w
参数,它永远不会使用。当你调用调用done
时,你不会传递那个神秘且完全无用的论点。那么为什么不把def
改为:摆脱神秘的,无用的
w
,你现在需要但没有提供?在看起来你想要的
关闭现有的“请稍候…”消息框。
msgbox().done()
创建一个新的消息框,然后在此新实例上调用done
。在至于额外的参数,您没有使用它,因此请将其从
^{pr2}$done
的定义中删除:离题
类
msgbox
应该从object
继承,这样就得到一个new-style class。在在
msgbox
上定义一个destructor,不需要显式地调用msgbox.done
,这可能会忘记。在相关问题 更多 >
编程相关推荐