Wxpython添加快捷键(可实现CMD+W关闭程序)

创建菜单项

显不显示菜单栏是一回事,但是快捷键绑定需要一个菜单项

m_exit = wx.MenuItem(exit_menu, id=wx.ID_CLOSE, text='&Exit\tCtrl+Q',helpString="Close window and exit program.", kind=wx.ITEM_NORMAL) # 创建菜单项
	self.Bind(wx.EVT_MENU, self.OnClose, m_exit)

设置快捷键键位

在界面的代码段落中添加如下代码

def LoginInterface(self):
	#省略了前面的代码……
	entries = [wx.AcceleratorEntry() for i in range(2)]
	# range()中的数字与下面的快捷键数量相等

    # entries[0].Set(wx.ACCEL_CTRL, ord('N'), ID_NEW_WINDOW)
    entries[0].Set(wx.ACCEL_CTRL, ord('W'), wx.ID_CLOSE)
    entries[1].Set(wx.ACCEL_CTRL, ord('I'), wx.ID_ABOUT)
    # entries[3].Set(wx.ACCEL_NORMAL, wx.WXK_DELETE, wx.ID_CUT)

    accel = wx.AcceleratorTable(entries)
    self.SetAcceleratorTable(accel)

这里entries[0].Set(wx.ACCEL_CTRL, ord('W'), wx.ID_EXIT)这行是设置的关键,wx.ACCEL_CTRL就是按下control的意思(MacOS下默认control键为command键,如果要使用control键是wx.ACCEL_RAW_CONTROL)后面第二个参数就是W键的ASCII值,代表这个键位,wx.ID_CLOSE表示执行的程序,这个是wxpython内置的

退出函数

    def OnClose(self, event):
        dlg = wx.MessageDialog(self,
                               "未保存的工作将丢失!",
                               "确认退出?", wx.OK | wx.CANCEL | wx.ICON_QUESTION)
        result = dlg.ShowModal()
        dlg.Destroy()
        if result == wx.ID_OK:
            self.Destroy()

这个OnClose()函数可以自定义弹出框的文本

然后试验一下就可以在程序里CMD+W退出程序了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值