wxPython – 菜单项、菜单和菜单条
在顶层窗口的标题栏下面有一个水平条,用来显示一系列的菜单。它是wxPython API中 wx.MenuBar类 的一个对象。
一个wx.Menu类的对象被添加到菜单栏中。它也被用来创建上下文菜单和弹出式菜单。每个菜单可以包含一个或多个wx.MenuItem对象或层叠的菜单对象。
wx.MenuBar类除了一个默认的构造函数外,还有一个参数化的构造函数。
参数’n’代表菜单的数量。 菜单 是一个菜单和标题的数组,以及一个字符串的数组。如果样式参数被设置为wx.MB_DOCKABLE,那么菜单栏可以被停靠。
以下是wx.MenuBar类的方法列表—
S.N. | 方法和描述 |
---|---|
1 | Append() 将菜单对象添加到栏中 |
2 | Check() 检查或取消对菜单的检查 |
3 | Enable() 启用或禁用菜单 |
4 | Remove() 从栏中删除一个菜单 |
一个wx.Menu类对象是一个或多个菜单项的下拉列表,用户可以选择其中一个。
下表显示了wx.Menu类中经常需要的方法—
以下是wx.Menu中最常用的方法 S.N. | 方法和描述 |
---|---|
1 | Append() 在菜单中添加一个菜单项 |
2 | AppendMenu() 添加一个子菜单 |
3 | AppendRadioItem() 添加一个可选择的单选项目 |
4 | AppendCheckItem() 添加一个可检查的菜单项 |
5 | AppendSeparator() 添加一个分隔线 |
6 | Insert() 在给定的位置插入一个新菜单 |
7 | InsertRadioItem() 在给定位置插入一个单选项目 |
8 | InsertCheckItem() 在给定位置插入一个新的检查项 |
9 | InsertSeparator() 插入一个分隔线 |
10 | Remove() 从菜单中删除一个项目 |
11 | GetMenuItems() 返回一个菜单项的列表 |
一个 菜单项 可以使用Append()函数直接添加,或者使用wx.MenuItem类的一个对象来添加。
为了定义一个菜单项,必须提到要添加它的菜单。
wxPython有大量的标准ID,可以分配给标准菜单项。在一些操作系统平台上,它们也与标准图标相关。
wx.ID_SEPARATOR
wx.ID_ANY
wx.ID_OPEN
wx.ID_CLOSE
wx.ID_NEW
wx.ID_SAVE
wx.ID_SAVEAS
wx.ID_EDIT
wx.ID_CUT
wx.ID
wx.ID_PASTE
然而,任何独特的整数都可以被分配为ID。文本参数是其标题。Kind参数采用以下枚举器之一 –
S.N. | 参数和描述 |
---|---|
1 | wx.item_NORMAL 正常菜单项 |
2 | wx.ITEM_CHECK 检查(或切换)菜单项 |
3 | wx.ITEM _RADIO 无线电菜单项 |
wx.Menu类也有AppendRadioItem()和AppendCheckItem(),不需要种类参数。
一个菜单项可以被设置为显示一个图标或快捷方式。wx.MenuItem类的SetBitmap()函数需要一个位图对象来显示。
EVT_MENU事件绑定器有助于处理菜单选择。
例子
下面的例子演示了上述wxPython中菜单系统的大部分功能。它显示了一个显示在菜单栏中的文件菜单。普通的菜单项、子菜单、单选项和复选项被添加到其中。有图标的菜单项也在其中。
事件处理程序,当被调用时,检索到与事件相关的ID,并可以进一步处理。例如,如果 “新建 “菜单项被选中,它就会在框架的文本框中显示出来。
完整的代码如下
上述代码产生的输出结果如下 –