CSDN博客:皮乾东
知乎:Htrying
微博:Htring的微博
微信公众号:自然语言处理爱好者(ID:NLP_lover)
0 环境准备
wxPython坏境的安装(wxPython当前也支持Python3.X版本),在已经配置好的python下,在dos中:pip install wxpython
即可,本程序是在win10系统环境下实现。
1 代码详解
#导包
import wx
#自定义一个窗口类MyFrame
class MyFrame(wx.Frame):
def __init__(self):
super().__init__(parent=None,title="目录的创建",size=(800,400))
self.Center() #设置窗口居中
#创建一个成员变量,文本的,多行
self.text=wx.TextCtrl(self,-1,style=wx.EXPAND|wx.TE_MULTILINE)
vbox=wx.BoxSizer(wx.VERTICAL)
#将其放到box的管理器中
vbox.Add(self.text,proportion=1,flag=wx.EXPAND|wx.ALL,border=1)
self.SetSizer(vbox)
#添加菜单
menubar=wx.MenuBar()
file_menu=wx.Menu()
new_item=wx.MenuItem(file_menu,wx.ID_NEW,text='新建',kind=wx.ITEM_NORMAL)
#添加事件处理
self.Bind(wx.EVT_MENU,self.on_newitem_click,id=wx.ID_NEW)
file_menu.Append(new_item)
file_menu.AppendSeparator()
#编辑菜单
edit_menu=wx.Menu()
copy_item=wx.MenuItem(edit_menu, 100, text='复制', kind=wx.ITEM_NORMAL)
edit_menu.Append(copy_item)
cut_item=wx.MenuItem(edit_menu, 101, text='剪切', kind=wx.ITEM_NORMAL)
edit_menu.Append(cut_item)
paste_item=wx.MenuItem(edit_menu, 102, text='粘贴', kind=wx.ITEM_NORMAL)
edit_menu.Append(paste_item)
#添加事件处理
self.Bind(wx.EVT_MENU,self.on_edititem_click,id=100,id2=102)
#把编辑菜单放到文件菜单中
file_menu.Append(wx.ID_ANY,'编辑', edit_menu)
menubar.Append(file_menu,"文件")
self.SetMenuBar(menubar)
def on_newitem_click(self,event):
self.text.SetLabel('单击【新建】菜单')
def on_edititem_click(self,event):
event_id=event.GetId()
if event_id==100:
self.text.SetLabel("单击【复制】菜单")
if event_id==101:
self.text.SetLabel("单击【剪切】菜单")
if event_id==102:
self.text.SetLabel("单击【粘贴】菜单")
#自定以一个应用程序类
class App(wx.App):
def OnInit(self):
#创建窗口对象
frame=MyFrame()
frame.Show()
return True
def OnExit(self):
print("应用程序退出")
return 0
if __name__=='__main__':
app=App()#创建自定以对象App
app.MainLoop()#进入事件主循环
2 结果演示
3 程序总结
对于做界面开发的程序,菜单也是必不可少的,这里仅仅介绍了如何添加菜单,其实还可以添加对应的快捷键,菜单的图标等等。