wxpython菜单的创建

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 程序总结

对于做界面开发的程序,菜单也是必不可少的,这里仅仅介绍了如何添加菜单,其实还可以添加对应的快捷键,菜单的图标等等。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/meiqi0538/article/details/80742370