wxPython in Action(九十四)

10.2.4 如何创建一个复选或单选开关菜单项?

菜单项不仅用于从选择表单中得到用户的输入,它们也被用于显示应用程序的状态。经由菜单项来显示状
态的最常用的机制是开关菜单项的使用,开关菜单项仿效一个复选框或单选按钮(你只能够通过改变该菜
单项的文本或使用有效或无效状态来反映应用程序的状态)。图10.4显示了复选和单选菜单项的例子。

图10.4


顾名思义,一个复选开关菜单项在它每次被选择时,它在开和关状态间转换。在一个组中,一次只允许一
个单选菜单项处于开的状态。当同一组中的另一个菜单项被选择时,先前的菜单项改变为关状态。例10.7
显示了如何创建复选和单选菜单项。

例10.7 建造开关菜单项

import wx

class MyFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1,
                          "Toggle Items Example")
        p = wx.Panel(self)
        menuBar = wx.MenuBar()
        menu = wx.Menu()
        exit = menu.Append(-1, "Exit")
        self.Bind(wx.EVT_MENU, self.OnExit, exit)
        menuBar.Append(menu, "Menu")

        menu = wx.Menu()
        menu.AppendCheckItem(-1, "Check Item 1")
        menu.AppendCheckItem(-1, "Check Item 2")
        menu.AppendCheckItem(-1, "Check Item 3")
        menu.AppendSeparator()
        menu.AppendRadioItem(-1, "Radio Item 1")
        menu.AppendRadioItem(-1, "Radio Item 2")
        menu.AppendRadioItem(-1, "Radio Item 3")
        menuBar.Append(menu, "Toggle Items")
        
        self.SetMenuBar(menuBar)
        
    def OnExit(self, event):
        self.Close()
        

if __name__ == "__main__":
    app = wx.PySimpleApp()
    frame = MyFrame()
    frame.Show()
    app.MainLoop()

正如你从例子所见到的,通过使用方法AppendCheckItem(id, item, helpString="")来添加一个复选框菜
单项,该方法类似于Append()。该方法的参数是wxPython标识符、显示在菜单中的名字、显示在状态栏听
帮助字符串。同样,你可以使用PrependCheckItem(id,item, helpString="")和InsertCheckItem(pos, id, item, helpString=""),这两个方法的行为与它们的无复选框的版本相同。

单选按钮菜单项可以使用AppendRadioItem(id,item,helpString="")方法来添加,你也可以使用
PrependRadioItem(id,item,  helpString="")和InsertRadioItem(pos,  id,  item,  helpString="")
方法。一系列连续的单选菜单项被作为一组,一组中一次只能有一个成员被触发。组以第一个非单选菜单
项或菜单分隔符为界。默认情况下,当单选组被创建时,该组中的第一个成员处于选中状态。

开 关菜单项可以通过使用Append()来创建。Append()的kind参数要求下列常量值之一:wx.ITEM_CHECK,  wx.ITEM_NORMAL, wx.ITEM_RADIO或wx.ITEM_SEPARATOR,其中的每个值创建一个适当类型的菜单项。这是有用 的,如果你正在使用某种数据驱动过程自动创建这些菜单项的话。所有类型的菜单项都可以使用这同种方法来创建,尽管指定kind为 wx.ITEM_SEPARATOR来生成一个分隔符必须给id参数传递wx.ID_SEPARATOR。

当你使用wx.MenuItem构造函数时你也可以创建一个开关菜单项(给参数kind一个相应的常量值)。所得
的菜单项可以使用AppendItem(), PrependItem(), InsertItem()之一的方法被添加到一个菜单。

要确定一个菜单项的开关状态,使用IsCheckable(),如果该项是一个复选或单选项,函数返回True,使
用IsChecked(),如果该项是可开关的且处于选中状态,那么返回True。你也可以使用Check(check)方法
来设置一个菜单项的开关状态,check是一个布尔参数。使用Check(check)方法设置时,被设置的菜单项
是单选的,那么将影响同一组别的项。

你也可以使用IsChecked(id)从菜单或菜单栏得到一个菜单项的开关状态,它要求相应菜单项的id。你也
可以使用Check(id, check)来设置菜单栏或菜单中的菜单项,参数check是布尔值。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值