处理pygtk / glade中的删除事件

时间:2013-02-02 08:28:11

标签: python user-interface gtk 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并退出。(我希望窗口保持打开状态)

1 个答案:

答案 0 :(得分:4)

您必须返回True才能停止在documentation for "delete-event"中提及的回调on_erro中传播删除事件。在您当前的代码中,回调函数不返回函数所需的任何布尔值,我猜测它正在返回False(请检查on_window_delete_event回调函数的签名,返回类型为boolean)
希望这有帮助!