wx.toobar工具欄

工具栏(toolbar)是一个把你的应用程序中最常用命令或操作分为不同组别的部件. 作为典型,保存、打开、剪切、复制、粘贴、撤销、重做等都是工具栏中的项目. 工具栏的用途是节省时间. 从工具栏执行一个操作你只需一次点击,而从菜单的话要两次操作.

[more…]

#!/usr/bin/python
#coding=utf-8

#toolbar.py

import wx

class MyToolBar(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, 
                          wx.Size(350, 250))

        vbox = wx.BoxSizer(wx.VERTICAL)
        toolbar = wx.ToolBar(self, -1, 
                             style=wx.TB_HORIZONTAL | wx.NO_BORDER)
        toolbar.AddSimpleTool(1, wx.Image('./icons/stock_new.png', 
                                          wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 
                              '新建', '')
        toolbar.AddSimpleTool(2, wx.Image('./icons/stock_open.png', 
                                          wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 
                              '打开', '')
        toolbar.AddSimpleTool(3, wx.Image('./icons/stock_save.png', 
                                          wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 
                              '保存', '')
        toolbar.AddSimpleTool(4, wx.Image('./icons/stock_exit.png', 
                                          wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 
                              '退出', '')
        toolbar.Realize()
        vbox.Add(toolbar, 0, border=5)
        self.SetSizer(vbox)
        self.statusbar = self.CreateStatusBar()
        self.Center()

        self.Bind(wx.EVT_TOOL, self.OnNew, id=1)
        self.Bind(wx.EVT_TOOL, self.OnOpen, id=2)
        self.Bind(wx.EVT_TOOL, self.OnSave, id=3)
        self.Bind(wx.EVT_TOOL, self.OnExit, id=4)

    def OnNew(self, event):
        self.statusbar.SetStatusText('新建命令')

    def OnOpen(self, event):
        self.statusbar.SetStatusText('打开命令')

    def OnSave(self, event):
        self.statusbar.SetStatusText('保存命令')

    def OnExit(self, event):
        self.statusbar.SetStatusText('退出命令')

class MyApp(wx.App):
    def OnInit(self):
        frame = MyToolBar(None, -1, 'toolbar.py')
        frame.Show(True)
        return True

app = MyApp(0)
app.MainLoop()

wx.BoxSizer 将会在后面的布局章节进行介绍. 工具栏部件可通过三步得以创建.
首先,我们创建一个工具栏对象.

toolbar = wx.ToolBar(self, -1, style=wx.TB_HORIZONTAL | wx.NO_BORDER)

接着我们要通过 AddSimleTool() 方法将一些工具按钮添加到工具栏中. 在参考书中你是找不到这个方法的. 它是一个 wxPython“扩展”. 这既是好事同时也有坏处. 这些扩展令到 python 编程更为容易. 但另一方面,它们又都没有良好的文档. 你毋须去看封装代码、演示实例或在邮件列表上问其他人.

toolbar.AddSimpleTool(1, wx.Image('./icons/stock_new.png', 
                                  wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 
                      '新建', '')

最后,我们调用了Realize() 方法. 此方法将该工具栏部件呈现或渲染出来.

toolbar.Realize()

工具栏部件有着好几个事件处理器. 在你点击一个工具栏图标时,一个 wx.EVT_COMMAND_TOOL_CLICKED 事件就产生了. 通过 wx.EVT_TOOL 处理器,我们将此事件绑定到一个特定的方法.

为了给这些事件显示处一些有意义的输出,我们建立了一个状态栏.

self.statusbar = self.CreateStatusBar()

这又是另一个 wxPython 扩展. 如此一来,在我们点击一个工具栏按钮时,状态栏上就会显示出一条消息. 这是通过 SetStatusText() 方法实现的.

f-05

图:toolbar.py

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值