- 添加退出功能到菜单
- 设置快捷键键位
- 退出函数
class UserLogin(wx.frame):
'''
登录界面
'''
# 初始化登录界面
def __init__(self, *args, **kw):
# ensure the parent's __init__ is called
super(UserLogin, self).__init__(*args, **kw)
# 设置窗口屏幕居中
self.Center()
# 创建窗口
self.pnl = wx.Panel(self)
# 调用登录界面函数
self.LoginInterface()
#此处开始往下是相关代码
menuBar = wx.MenuBar()
menu = wx.Menu()
m_exit = menu.Append(wx.ID_EXIT, "&ExittAlt-X",
"Close window and exit program.")
self.Bind(wx.EVT_MENU, self.OnClose, m_exit)
menuBar.Append(menu, "&StudentSys")
设置快捷键键位
在界面的代码段落中添加如下代码
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_EXIT)
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_EXIT表示执行的程序,这个是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()
然后试验一下就可以在程序里CMD+W退出程序了w



