在wxPython中引发wx.EVT_CLOSE之后,如何停止关闭窗口?

古斯塔沃·奥利维拉(Gustavo Oliveira)

我有一个框架,一旦用户单击退出按钮,我想打开一个对话框,问他是否真的要关闭窗口。

所以我做了:

self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)

然后我有回调:

def OnCloseWindow(self, event):
    dialog = wx.MessageDialog(self, message = "Are you sure you want to quit?", caption = "Caption", style = wx.YES_NO, pos = wx.DefaultPosition)
    response = dialog.ShowModal()

    if (response == wx.ID_YES):
        Pairs = []
        self.list_ctrl_1.DeleteAllItems()
        self.index = 0
        self.Destroy()
    elif (response == wx.ID_NO):
        wx.CloseEvent.Veto(True)
    event.Skip()

这行得通,但是,我得到了错误:

TypeError: unbound method Veto() must be called with CloseEvent instance as first argument (got bool instance instead)

如何捕获引发的事件的closeWindows实例?

凤凰

您实际上不需要做那么多。如果您捕获该事件并且不调用event.Skip(),则该事件不会向前传播。因此,如果您赶上事件并且不致电event.Skip()self.Destroy(),则窗口保持打开状态。

import wx

class MainWindow(wx.Frame):
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)
        self.panel = wx.Panel(self)
        self.Bind(wx.EVT_CLOSE, self.on_close)
        self.Show()

    def on_close(self, event):
        dialog = wx.MessageDialog(self, "Are you sure you want to quit?", "Caption", wx.YES_NO)
        response = dialog.ShowModal()
        if response == wx.ID_YES:
            self.Destroy()

app = wx.App(False)
win = MainWindow(None)
app.MainLoop()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在wxPython中引发wx.EVT_CLOSE之后,如何停止关闭窗口?

来自分类Dev

当我单击wx.Dialog中的“确定”或“取消”按钮时,为什么不触发EVT_CLOSE?

来自分类Dev

如何在wxpython中显示wx.DC的CrossHair?

来自分类Dev

如何在wxpython中显示wx.DC的CrossHair?

来自分类Dev

wxPython在wx.Window中如何使用不同的大小

来自分类Dev

如何在Wxpython PseudoDC中的wx.Rect中返回ID

来自分类Dev

如何在wxPython的wx.StaticText()中具有不同的彩色文本

来自分类Dev

WxPython:如何获取wx网格中显示的单元格范围?

来自分类Dev

如何在wxpython中更改wx.TextCtrl小部件的形状?

来自分类Dev

wxPython-实现wx.EVT_TEXT_PASTE

来自分类Dev

如何在wx.notebook中调整多个画布的大小,浮点大小和重叠问题(WxPython,Matplotlib)

来自分类Dev

wxPython-如何导入wx.adv模块?

来自分类Dev

wxPython wx.CallAfter-如何使其立即执行?

来自分类Dev

wxPython-如何导入wx.adv模块?

来自分类Dev

wxPython:绑定wx.EVT_CHAR_HOOK禁用TextCtrl退格键

来自分类Dev

是否有与wxPython(Phoenix)等效的wx.EVT_CHAR或event.GetKeyCode()?

来自分类Dev

wxPython +弱引用代理=关闭wx.Frame不会产生None

来自分类Dev

Python-wxPython:使用wx.ClientDC绘制线,在最小化窗口后消失

来自分类Dev

如何关闭testRigor中没有Close(X)按钮的弹出窗口?

来自分类Dev

wxpython wx.Slider:仅当用户暂停预定时间后如何触发事件

来自分类Dev

如何在wx.grid(wxpython)中将整个行/列设置为只读?

来自分类Dev

wxpython wx.Slider:仅当用户暂停预定时间后如何触发事件

来自分类Dev

wxPython wx.CallAfter()

来自分类Dev

如何识别按钮或标题栏关闭按钮在 WPF 中单击引发的 Window_Close 事件?

来自分类Dev

如何停止用Cmd + C关闭的wxPython对话框

来自分类Dev

WxPython:导入wx.lib

来自分类Dev

wx python在更新过程中关闭屏幕绘画

来自分类Dev

使用Ctrl-W关闭wxpython中的pyplot窗口会导致分段错误

来自分类Dev

如何在pyqtgraph中关闭窗口

Related 相关文章

  1. 1

    在wxPython中引发wx.EVT_CLOSE之后,如何停止关闭窗口?

  2. 2

    当我单击wx.Dialog中的“确定”或“取消”按钮时,为什么不触发EVT_CLOSE?

  3. 3

    如何在wxpython中显示wx.DC的CrossHair?

  4. 4

    如何在wxpython中显示wx.DC的CrossHair?

  5. 5

    wxPython在wx.Window中如何使用不同的大小

  6. 6

    如何在Wxpython PseudoDC中的wx.Rect中返回ID

  7. 7

    如何在wxPython的wx.StaticText()中具有不同的彩色文本

  8. 8

    WxPython:如何获取wx网格中显示的单元格范围?

  9. 9

    如何在wxpython中更改wx.TextCtrl小部件的形状?

  10. 10

    wxPython-实现wx.EVT_TEXT_PASTE

  11. 11

    如何在wx.notebook中调整多个画布的大小,浮点大小和重叠问题(WxPython,Matplotlib)

  12. 12

    wxPython-如何导入wx.adv模块?

  13. 13

    wxPython wx.CallAfter-如何使其立即执行?

  14. 14

    wxPython-如何导入wx.adv模块?

  15. 15

    wxPython:绑定wx.EVT_CHAR_HOOK禁用TextCtrl退格键

  16. 16

    是否有与wxPython(Phoenix)等效的wx.EVT_CHAR或event.GetKeyCode()?

  17. 17

    wxPython +弱引用代理=关闭wx.Frame不会产生None

  18. 18

    Python-wxPython:使用wx.ClientDC绘制线,在最小化窗口后消失

  19. 19

    如何关闭testRigor中没有Close(X)按钮的弹出窗口?

  20. 20

    wxpython wx.Slider:仅当用户暂停预定时间后如何触发事件

  21. 21

    如何在wx.grid(wxpython)中将整个行/列设置为只读?

  22. 22

    wxpython wx.Slider:仅当用户暂停预定时间后如何触发事件

  23. 23

    wxPython wx.CallAfter()

  24. 24

    如何识别按钮或标题栏关闭按钮在 WPF 中单击引发的 Window_Close 事件?

  25. 25

    如何停止用Cmd + C关闭的wxPython对话框

  26. 26

    WxPython:导入wx.lib

  27. 27

    wx python在更新过程中关闭屏幕绘画

  28. 28

    使用Ctrl-W关闭wxpython中的pyplot窗口会导致分段错误

  29. 29

    如何在pyqtgraph中关闭窗口

热门标签

归档