网站首页 > 技术文章 正文
1 菜单栏:
=======
1.1 效果图
1.2 代码:
#菜单栏和水平一行菜单的设置
import wx
class MyFrame(wx.Frame):
def __init__(self):
#窗口名称
wx.Frame.__init__(self, None, -1, "菜单menu学习-1")
#第1步:调出菜单栏,实例化
menuBar = wx.MenuBar()
#第2步:创建菜单栏上的菜单项目
#2-1:创建一个开始的菜单
begin = wx.Menu()
# 将开始菜单添加到菜单栏上
menuBar.Append(begin, "开始")
#2-2:创建一个编辑的菜单
edit = wx.Menu()
# 将编辑菜单添加到菜单栏上
menuBar.Append(edit, "编辑")
#2-3:创建一个关于的菜单
about = wx.Menu()
#将关于菜单添加到菜单栏上
menuBar.Append(about, "关于")
#挂在菜单
self.SetMenuBar(menuBar)
if __name__ == "__main__":
app = wx.App()
frame = MyFrame()
frame.Show()
app.MainLoop()
2 子菜单:
======
2.1 效果图
2.2 代码:
#下拉菜单:二级和三级菜单设置
import wx
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "菜单menu学习-2")
#第1步:调出菜单栏,实例化
menuBar = wx.MenuBar()
#第2步:创建菜单栏上的菜单项目
#2-1:创建一个开始的菜单
begin = wx.Menu()
# 将开始菜单添加到菜单栏上
menuBar.Append(begin, "开始")
#二级菜单设置
# 2-1-1:在开始菜单下的下拉菜单:添加一个新建菜单
new= begin.Append(-1, "新建", "新建一个文件")
#begin.AppendSeparator() #分隔符
# 2-1-1:在开始菜单下的下拉菜单:添加一个退出菜单
exit = begin.Append(-1, "退出",'退出窗口')
#2-2:创建一个编辑的菜单
edit = wx.Menu()
# 将编辑菜单添加到菜单栏上
menuBar.Append(edit, "编辑")
#编辑的二级菜单
#编辑的二级菜单:剪切
jianqie= edit.Append(-1, "剪切", "内容剪切")
#编辑的二级菜单:复制
fuzhi = edit.Append(-1, "复制",'内容复制')
#编辑的二级菜单:粘贴
zhantie= edit.Append(-1, "粘贴", "内容粘贴")
#编辑的二级菜单:撤销
chexiao = edit.Append(-1, "撤销",'撤销操作')
#2-3:创建一个关于的菜单
about = wx.Menu()
#将关于菜单添加到菜单栏上
menuBar.Append(about, "关于")
#二级菜单设置
# 2-3-1:在开始菜单下的下拉菜单:添加一个更新菜单
renew= about.Append(-1, "更新", "更新软件")
#about.AppendSeparator() #分隔符
# 2-3-2:在开始菜单下的下拉菜单:添加一个版本菜单
vesion = about.Append(-1, "版本",'该软件的版本信息')
# 2-3-3:在开始菜单下的下拉菜单:添加一个个人信息菜单
#meself = about.Append(-1, "个人信息",'个人信息')
#如果要在个人信息的下拉菜单,再建下拉菜单,这样就会出错
#meself = about.Append(-1, "个人信息",'个人信息') #注释点
#新建一个个人信息菜单,实例化
meself = wx.Menu()
#将个人信息菜单,作为亚菜单(子菜单),添加到关于about菜单上
about.AppendSubMenu(meself,'个人信息')
#注意数字:100-200-300,只是区分子菜单,防止搞混
#也可以1-2-3
address = wx.MenuItem(meself, 1, text="地址")
meself.Append(address)
xueli = wx.MenuItem(meself, 2, text="学历")
meself.Append(xueli)
age = wx.MenuItem(meself, 3, text="年龄")
meself.Append(age)
#挂在菜单
self.SetMenuBar(menuBar)
if __name__ == "__main__":
app = wx.App()
frame = MyFrame()
frame.Show()
app.MainLoop()
3 快捷键和类型:
============
3.1 效果图
3.2 代码:
#菜单快捷键设置和类型
import wx
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "菜单menu学习-3")
#第1步:调出菜单栏,实例化
menuBar = wx.MenuBar()
#第2步:创建菜单栏上的菜单项目
#2-1:创建一个开始的菜单
begin = wx.Menu()
# 将开始菜单添加到菜单栏上
menuBar.Append(begin, "开始")
#二级菜单设置
# 2-1-1:在开始菜单下的下拉菜单:添加一个新建菜单
new= begin.Append(-1, "新建\tCtrl+N", "新建一个文件")
#begin.AppendSeparator() #分隔符
# 2-1-1:在开始菜单下的下拉菜单:添加一个退出菜单
exit = begin.Append(-1, "退出\tCtrl+E",'退出窗口')
#2-2:创建一个编辑的菜单
edit = wx.Menu()
# 将编辑菜单添加到菜单栏上
menuBar.Append(edit, "编辑")
#编辑的二级菜单
#编辑的二级菜单:剪切
jianqie= edit.Append(-1, "剪切\tCtrl+S", "内容剪切")
#编辑的二级菜单:复制
fuzhi = edit.Append(-1, "复制\tCtrl+C",'内容复制')
#编辑的二级菜单:粘贴
zhantie= edit.Append(-1, "粘贴\tCtrl+P", "内容粘贴")
#编辑的二级菜单:撤销
chexiao = edit.Append(-1, "撤销\tCtrl+R",'撤销操作')
#2-3:创建一个关于的菜单
about = wx.Menu()
#将关于菜单添加到菜单栏上
menuBar.Append(about, "关于")
#二级菜单设置
# 2-3-1:在开始菜单下的下拉菜单:添加一个更新菜单
renew= about.Append(-1, "更新\tCtrl+P", "更新软件")
#about.AppendSeparator() #分隔符
# 2-3-2:在开始菜单下的下拉菜单:添加一个版本菜单
vesion = about.Append(-1, "版本\tCtrl+V",'该软件的版本信息')
# 2-3-3:在开始菜单下的下拉菜单:添加一个个人信息菜单
#新建一个个人信息菜单,实例化
meself = wx.Menu()
#将个人信息菜单,作为亚菜单(子菜单),添加到关于about菜单上
about.AppendSubMenu(meself,'个人信息')
#注意数字:100-200-300,只是区分子菜单,防止搞混
#也可以1-2-3
address = wx.MenuItem(meself, 1, text="地址", kind=wx.ITEM_NORMAL)
meself.Append(address)
xueli = wx.MenuItem(meself, 2, text="学历", kind=wx.ITEM_NORMAL)
meself.Append(xueli)
age = wx.MenuItem(meself, 3, text="年龄", kind=wx.ITEM_NORMAL)
meself.Append(age)
#挂在菜单
self.SetMenuBar(menuBar)
if __name__ == "__main__":
app = wx.App()
frame = MyFrame()
frame.Show()
app.MainLoop()
4 菜单栏的功能定义和弹出框,显示状态栏和设置
=====================================
4.1 效果图:
4.2 代码:
#菜单的功能定义和弹出框
#显示状态栏和设置
import wx
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "菜单menu学习-4")
#第1步:调出菜单栏,实例化
menuBar = wx.MenuBar()
#第2步:创建菜单栏上的菜单项目
#2-1:创建一个开始的菜单
begin = wx.Menu()
# 将开始菜单添加到菜单栏上
menuBar.Append(begin, "开始")
#二级菜单设置
# 2-1-1:在开始菜单下的下拉菜单:添加一个新建菜单
new= begin.Append(-1, "新建\tCtrl+N", "新建一个文件")
#begin.AppendSeparator() #分隔符
# 2-1-1:在开始菜单下的下拉菜单:添加一个退出菜单
exit = begin.Append(-1, "退出\tCtrl+E",'退出窗口')
#二级菜单的功能绑定
self.Bind(wx.EVT_MENU, self.OnNew, new)
self.Bind(wx.EVT_MENU, self.OnExit, exit)
#2-2:创建一个编辑的菜单
edit = wx.Menu()
# 将编辑菜单添加到菜单栏上
menuBar.Append(edit, "编辑")
#编辑的二级菜单
#编辑的二级菜单:剪切
jianqie= edit.Append(-1, "剪切\tCtrl+S", "内容剪切")
#编辑的二级菜单:复制
fuzhi = edit.Append(-1, "复制\tCtrl+C",'内容复制')
#编辑的二级菜单:粘贴
zhantie= edit.Append(-1, "粘贴\tCtrl+P", "内容粘贴")
#编辑的二级菜单:撤销
chexiao = edit.Append(-1, "撤销\tCtrl+R",'撤销操作')
#2-3:创建一个关于的菜单
about = wx.Menu()
#将关于菜单添加到菜单栏上
menuBar.Append(about, "关于")
#二级菜单设置
# 2-3-1:在开始菜单下的下拉菜单:添加一个更新菜单
renew= about.Append(-1, "更新\tCtrl+P", "更新软件")
#about.AppendSeparator() #分隔符
# 2-3-2:在开始菜单下的下拉菜单:添加一个版本菜单
vesion = about.Append(-1, "版本\tCtrl+V",'该软件的版本信息')
# 2-3-3:在开始菜单下的下拉菜单:添加一个个人信息菜单
#新建一个个人信息菜单,实例化
meself = wx.Menu()
#将个人信息菜单,作为亚菜单(子菜单),添加到关于about菜单上
about.AppendSubMenu(meself,'个人信息')
#注意数字:100-200-300,只是区分子菜单,防止搞混
#也可以1-2-3
address = wx.MenuItem(meself, 1, text="地址", kind=wx.ITEM_NORMAL)
meself.Append(address)
xueli = wx.MenuItem(meself, 2, text="学历", kind=wx.ITEM_NORMAL)
meself.Append(xueli)
age = wx.MenuItem(meself, 3, text="年龄", kind=wx.ITEM_NORMAL)
meself.Append(age)
#挂在菜单
self.SetMenuBar(menuBar)
#显示状态栏
self.CreateStatusBar()
#显示状态栏的初始文字
self.SetStatusText("状态栏") #注释掉的话,初始状态栏的文字就是空的
#弹出对话框
def OnNew(self, event):
wx.MessageBox("新建一个新的文件,这是一个弹出框")
#系统退出
def OnExit(self, event):
self.Close()
if __name__ == "__main__":
app = wx.App()
frame = MyFrame()
frame.Show()
app.MainLoop()
5 菜单类型kind
===========
5.1 效果图
5.2 代码:#kind = wx.ITEM_RADIO,前面是圆点
#默认#kind = wx.ITEM_NORMAL
#也可以去除
#address = wx.MenuItem(meself, 1, text="地址", kind=wx.ITEM_NORMAL)
address = wx.MenuItem(meself, 1, text="地址")
6 右键单击弹出菜单
===============
6.1 效果图
6.2 代码:
#右键单击菜单
import wx
#右键菜单设置
class MyPopupMenu(wx.Menu):
def __init__(self,parent):
super(MyPopupMenu,self).__init__()
self.parent = parent
#右键菜单项目:最小化
mmi = wx.MenuItem(self,-1,'MiniSize')
self.Append(mmi)
self.Bind(wx.EVT_MENU, self.OnMinimize, mmi)
#右键菜单项目:关闭
cmi = wx.MenuItem(self,-1,'Close')
self.Append(cmi)
self.Bind(wx.EVT_MENU, self.OnClose, cmi)
#最小化
def OnMinimize(self,e):
self.parent.Iconize()
#关闭
def OnClose(self,e):
self.parent.Close()
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "菜单menu学习-6")
#第1步:调出菜单栏,实例化
menuBar = wx.MenuBar()
#第2步:创建菜单栏上的菜单项目
#2-1:创建一个开始的菜单
begin = wx.Menu()
# 将开始菜单添加到菜单栏上
menuBar.Append(begin, "开始")
#二级菜单设置
# 2-1-1:在开始菜单下的下拉菜单:添加一个新建菜单
new= begin.Append(-1, "新建\tCtrl+N", "新建一个文件")
# 2-1-1:在开始菜单下的下拉菜单:添加一个退出菜单
exit = begin.Append(-1, "退出\tCtrl+E",'退出窗口')
#二级菜单的功能绑定
self.Bind(wx.EVT_MENU, self.OnNew, new)
self.Bind(wx.EVT_MENU, self.OnExit, exit)
#2-2:创建一个编辑的菜单
edit = wx.Menu()
# 将编辑菜单添加到菜单栏上
menuBar.Append(edit, "编辑")
#编辑的二级菜单
#编辑的二级菜单:剪切
jianqie= edit.Append(-1, "剪切\tCtrl+S", "内容剪切",kind = wx.ITEM_RADIO)
#编辑的二级菜单:复制
fuzhi = edit.Append(-1, "复制\tCtrl+C",'内容复制')
#编辑的二级菜单:粘贴
zhantie= edit.Append(-1, "粘贴\tCtrl+P", "内容粘贴")
#编辑的二级菜单:撤销
chexiao = edit.Append(-1, "撤销\tCtrl+R",'撤销操作')
#2-3:创建一个关于的菜单
about = wx.Menu()
#将关于菜单添加到菜单栏上
menuBar.Append(about, "关于")
#二级菜单设置
# 2-3-1:在开始菜单下的下拉菜单:添加一个更新菜单
renew= about.Append(-1, "更新\tCtrl+P", "更新软件")
# 2-3-2:在开始菜单下的下拉菜单:添加一个版本菜单
vesion = about.Append(-1, "版本\tCtrl+V",'该软件的版本信息')
# 2-3-3:在开始菜单下的下拉菜单:添加一个个人信息菜单
#新建一个个人信息菜单,实例化
meself = wx.Menu()
#将个人信息菜单,作为亚菜单(子菜单),添加到关于about菜单上
about.AppendSubMenu(meself,'个人信息')
address = wx.MenuItem(meself, 1, text="地址")
meself.Append(address)
xueli = wx.MenuItem(meself, 2, text="学历", kind=wx.ITEM_NORMAL)
meself.Append(xueli)
age = wx.MenuItem(meself, 3, text="年龄", kind=wx.ITEM_NORMAL)
meself.Append(age)
#挂在菜单
self.SetMenuBar(menuBar)
#显示状态栏
self.CreateStatusBar()
#显示状态栏的初始文字
self.SetStatusText("状态栏") #注释掉的话,初始状态栏的文字就是空的
#绑定右键菜单,调出函数
self.Bind(wx.EVT_RIGHT_DOWN, self.OnRightDown)
#弹出对话框
def OnNew(self, event):
wx.MessageBox("新建一个新的文件,这是一个弹出框")
#系统退出
def OnExit(self, event):
self.Close()
#右键菜单
def OnRightDown(self,e):
self.PopupMenu(MyPopupMenu(self),e.GetPosition())
if __name__ == "__main__":
app = wx.App()
frame = MyFrame()
frame.Show()
app.MainLoop()
wxpython的菜单设置基本完成。
可能会有菜单的图标设置,这个本机是deepin-linux操作系统,我失败了,就不放上上面了,其实很简单。
猜你喜欢
- 2025-07-28 用python嗅探网络中所有HTTP数据包
- 2025-07-28 python制作仪表盘图(python动态仪表盘)
- 2025-07-28 一起来用 Python 做个是男人就坚持100秒游戏
- 2025-07-28 编程之美:分享Python简单界面框架easygui使用方法
- 2025-07-28 想了解Python源代码加密吗?现总结如下5大加密混淆手段!
- 2025-07-28 不容易!找到一个python的超简易网站搭建神器
- 2025-07-28 多学习才能多赚钱之:python怎么制作游戏脚本
- 2025-07-28 零基础Python自学教程9:Python中运算符的优先级和条件表达式
- 2025-07-28 python 标志法-优化版(数值判断[正负])、非空判断、退出判断)
- 2025-07-28 [python]B站视频下载器优化:下载/合并分开,断点下载,图标问题
- 290℃Python短文,Python中的嵌套条件语句(六)
- 286℃PythonNet:实现Python与.Net代码相互调用!
- 283℃python笔记:for循环嵌套。end=""的作用,图形打印
- 282℃Python实现字符串小写转大写并写入文件
- 279℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 140℃原来2025是完美的平方年,一起探索六种平方的算吧
- 123℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 115℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)