处理 pygtk/glade 中的删除事件



我有一个在glade中设计的GUI,在后台使用python/gtk。我想处理delete event并显示"你确定吗?-消息对话框。我一直在尝试处理删除和销毁事件,但未能这样做。

#!/usr/bin/python
import .... stuff


class App:
  def __init__(self):

    self.gladefile = 'test.glade'
    windowname = 'window'# This must match the window name in glade
    self.wTree = gtk.glade.XML(self.gladefile, windowname)# object for acessing widgets

    dic={
    # Also need to set project2's signal tab
       'on_window_delete_event':self.on_erro,
       'on_window_destroy_event':self.on_erro,
         }
    self.wTree.signal_autoconnect (dic)
    self.op=self.wTree.get_widget('window')
    self.op.show()
  def on_erro(self,widget,*args):
        print 'hello'



app = App()
gtk.main()

此代码将打开一个简单的窗口。单击关闭按钮后,它会打印 hello 并退出。(我希望窗口保持打开状态)

您必须

返回True才能停止回调on_erro中 delete 事件的传播,如 "delete-event" 文档中所述。在您当前的代码中,回调没有按照函数的要求返回任何布尔值,我猜它返回False(请检查on_window_delete_event回调函数的签名,返回类型为布尔值)
希望这有帮助!

相关内容

  • 没有找到相关文章

最新更新