【问题标题】:Handling delete event in pygtk/glade处理 pygtk/glade 中的删除事件
【发布时间】:2013-02-04 04:31:46
【问题描述】:

我有一个在 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 并退出。(我希望窗口保持打开状态)

【问题讨论】:

  • 你试过什么?你怎么失败了?除非您详细说明,否则没有人可以帮助您。

标签: python user-interface gtk pygtk glade


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    相关资源
    最近更新 更多