准备工作:把基础框架创建好(有不清楚的可以看上一篇文章"wxpython框架的基础创建")
import wx
class _frame(wx.Frame):
def __init__(self, superior):
wx.Frame.__init__(self, parent=superior, title="囧粥", pos=(10, 100), size=(500, 600))
if __name__ == '__main__':
app = wx.App()
frm = _frame(None)
frm.Show()
app.MainLoop()
第一步:创建一个面板,用于放置菜单栏
panel1 = wx.Panel(self) #创建一个面板
第二步:创建菜单栏和"文件菜单",并把'文件菜单"加入菜单栏.然后将菜单栏显示在panel1面板上.
menubar = wx.MenuBar() #创建菜单栏
filemenu = wx.Menu() #创建菜单
menubar.Append(filemenu, "文件") #将filemenu菜单以"文件"的名字加入菜单栏
self.SetMenuBar(menubar) #将菜单栏显示在面板上
代码:
import wx class _frame(wx.Frame): def __init__(self, superior): wx.Frame.__init__(self, parent=superior, title="囧粥", pos=(10, 100), size=(500, 600)) panel1 = wx.Panel(self) # 创建一个面板 self._menubar() def _menubar(self): menubar = wx.MenuBar() # 创建菜单栏 filemenu = wx.Menu() # 创建菜单 menubar.Append(filemenu, "文件") # 将filemenu菜单以"文件"的名字加入菜单栏 self.SetMenuBar(menubar) # 将菜单栏显示在面板上 if __name__ == '__main__': app = wx.App() frm = _frame(None) frm.Show() app.MainLoop()
结果:
现在的菜单栏还没有功能,我们来给"文件菜单"里加入一个有退出功能的子菜单
第四步:在"文件菜单"里创建一个有退出功能的子菜单
exit_ = filemenu.Append(1, "退出") #添加一个名为"退出"的子菜单
self.Bind(wx.EVT_MENU, self._exit, exit_) #将exit_关联到_exit的函数里
#创建一个可以实现退出功能的函数
def _exit(self, event):
self.Close(True)
最后来总结怎么添加菜单,然后把菜单栏完善一下
#首先是一个创建菜单
menu = wx.Menu()
#第二是将这个菜单命名并加入菜单栏
菜单栏名.Append(menu, "菜单名")
#第三是个为这个菜单添加子菜单,如果没有则不用
_menu = 菜单名.Append(1, "子菜单名")
#最后让这个菜单拥有自己对应的功能
self.Bind(wx.EVT_MENU, self.函数名, _menu)
#创建实现功能的函数(以"退出功能"为例)
def 函数名(self, event):
self.CLose(True)
好,现在就来完善菜单栏
import wx
class _frame(wx.Frame):
def __init__(self, superior):
wx.Frame.__init__(self, parent=superior, title="囧粥", pos=(10, 100), size=(500, 600))
panel1 = wx.Panel(self) # 创建一个面板
self._menubar()
def _menubar(self):
menubar = wx.MenuBar() # 创建菜单栏
# "文件菜单"
filemenu = wx.Menu() # 创建菜单
menubar.Append(filemenu, "文件") # 将filemenu菜单以"文件"的名字加入菜单栏
#添加子菜单
filemenu.Append(1, "新建") # 因为暂时还没有功能,所以先不用赋值
filemenu.Append(2, "打开")
filemenu.Append(3, "保存")
filemenu.Append(4, "另存为")
exit_ = filemenu.Append(5, "退出") # 添加一个名为"退出"的子菜单
# "编辑菜单"
editmenu = wx.Menu() #创建菜单
menubar.Append(editmenu, "编辑") # 将deitmenu菜单以"编辑"的名字加入菜单栏
# 添加子菜单
editmenu.Append(6, "撤销")
editmenu.Append(7, "剪切")
editmenu.Append(8, "复制")
editmenu.Append(9, "粘贴")
editmenu.Append(10, "删除")
editmenu.Append(11, "查找")
# "窗口菜单"
windowsmenu = wx.Menu() #创建菜单
menubar.Append(windowsmenu, "窗口") # 将windowsmenu菜单以"窗口"的名字加入菜单栏
# "添加子菜单"
windowsmenu.Append(12, "活动窗口")
windowsmenu.Append(13, "通知")
windowsmenu.Append(14, "状态栏")
# "帮助菜单"
helpmenu = wx.Menu() #创建菜单
menubar.Append(helpmenu, "帮助") # 将helpmenu菜单以"帮助"的名字加入菜单栏
# "添加子菜单"
helpmenu.Append(15, "查看帮助")
helpmenu.Append(16, "关于我们")
self.Bind(wx.EVT_MENU, self._exit, exit_) # 将exit_关联到_exit的函数里
self.SetMenuBar(menubar) # 将菜单栏显示在面板上
# 创建一个可以实现退出功能的函数
def _exit(self, event):
self.Close(True)
if __name__ == '__main__':
app = wx.App()
frm = _frame(None)
frm.Show()
app.MainLoop()
结果: