下面看一下关于创建工具栏,状态栏和菜单的方法,看下面一个例子:

import wx

class ToolBarFrame(wx.Frame):

def __init__(self,parent,id):

wx.Frame.__init__(self,parent,id,'ToolBar',size=(300,200))

panel=wx.Panel(self)

panel.SetBackgroundColour('white')

statusBar=self.CreateStatusBar()

toolBar=self.CreateToolBar()

toolBar.AddSimpleTool(wx.NewId(),wx.Bitmap('Toolbar.bmp'),"New","long help for 'New'")

toolBar.Realize()

menuBar=wx.MenuBar()

menu1=wx.Menu()

menuBar.Append(menu1,"&File")

menu2=wx.Menu()

menu2.Append(wx.NewId(),"&Copy","Copy in status bar")

menu2.Append(wx.NewId(),"&Cut","")

menu2.Append(wx.NewId(),"Paste","")

menu2.AppendSeparator()

menu2.Append(wx.NewId(),"&Options...","Display Option")

menuBar.Append(menu2,"&Edit")

self.SetMenuBar(menuBar)

if __name__=='__main__':

app=wx.PySimpleApp()

frame=ToolBarFrame(parent=None,id=-1)

frame.Show()

app.MainLoop()

运行结果如下:

首先是StatusBar的创建:statusBar=self.CreateStatusBar() 这里用到了Frame里的一个方法,CreateStatusBar(),它就默认在当前的frame下面创建一个默认的和frame边缘相符的状态栏,这是非常简单的,一句话搞定。当然wx为我们提供了一个专门的ToolBar类,和其对应的很多方法,比如Create(),这里就先不介绍了。StatusBar就是显示一些别的应用提供的文本,这里文本的大小等属性由系统默认。

下面是ToolBar的创建。

toolBar=self.CreateToolBar()

toolBar.AddSimpleTool(wx.NewId(),wx.Bitmap('Toolbar.bmp'),"New","long help for 'New'")

toolBar.Realize()

第一句还是调用了Frame里的一个方法CreateToolBar,返回一个ToolBar对象,也是非常的简单一种方法,下面是往这个ToolBar上加载我们要的图标,AddSimpleTool的用法可以通过help来帮助:AddSimpleTool(self, id, bitmap, shortHelpString='', longHelpString='', isToggle=0) unbound wx._controls.ToolBar method

Old style method to add a tool to the toolbar.

其中的一个参数longHelpString就是要显示到状态栏的帮助信息。最后Realize()就是要让这个工具栏显示在窗口上。

最后剩下的就是创建菜单了。

MenuBar()是创建菜单栏,也就是菜单要放置的地方。Menu()是创建菜单,Append()是把菜单加到菜单栏的方法,或者是把子菜单加到菜单上。self.SetMenuBar(menuBar)是调用了Frame的一个方法,来放置菜单栏,它会自动放置到合适的位置。

wxpython 创建工具栏和菜单栏的更多相关文章

  1. 用CToolBarCtrl类为对话框创建工具栏

    ---恢复内容开始--- 首先CToolBarCtrl类内部维护了三个重要的数据结构:一个图像列表,一个字符串列表,一个TBBUTTON结构体的列表. 知道了这一点,下面的理解起来就轻松了.慢慢来: ...

  2. wx工具栏,菜单栏,状态栏

    #!/usr/bin/env python # -*- coding: utf- -*- import wx import wx.py.images class ToolbarFrame(wx.Fra ...

  3. 创建一个包括菜单栏,工具栏,状态栏,文本编辑部件的经典GUI应用程序的骨架

    效果如下: 代码如下: #!/usr/bin/python3 # -*- coding: utf-8 -*- """ This program creates a ske ...

  4. qt 工具栏和菜单栏

    在前面的QMainWindow的基础之上,我们开始着手建造我们的应用程序.虽然现在已经有一个框架,但是,确切地说我们还一行代码没有写呢!下面的工作就不那么简单了!在这一节里面,我们要为我们的框架添加菜 ...

  5. C# winfrom容器布局与工具栏&&右键菜单栏&&隐藏显示小图标的的简单事件

    前两天的时候学习了winfrom,简单地说就是各种布局,然后给按钮,textbox等各种控件添加各种事件的操作,经过前天一晚上,昨天一天的练习操作的还算熟练,但是对构造函数传值还是不是很了解,由于各种 ...

  6. win32创建工具栏的自定义图标

    注意点:使用LoadImage函数加载bmp图片,这里特指BMP图片,其实LoadImage可以加载很多格式的图片 HBITMAP bitmap = (HBITMAP)LoadImage((HINST ...

  7. Android 学习笔记四:创建工具栏按钮

    原文:http://blog.csdn.net/lihongxun945/article/details/48951199 前面我们已经可以在一个Activity中添加一些按钮之类的组件.由于手机的屏 ...

  8. wxPython 创建基本窗口

    $ pip install wxPython import wx class MyFrame(wx.Frame): def __init__(self, parent, title): super(M ...

  9. Virtual Box 工具栏(菜单栏)消失的解决方法

    异常处理汇总-开发工具  http://www.cnblogs.com/dunitian/p/4522988.html 现在Virtual Box非常牛逼(不排除Oracle又准备像Java SE那样 ...

随机推荐

  1. alter table添加表约束

    翻阅了一下网上关于alter table添加表约束的资料,学习下,然后供自己以后使用. 仅仅供自己使用... 总结alter table ### add constraint ## 使用方法 添加表约 ...

  2. P4294 [WC2008]游览计划

    传送门 斯坦纳树 给一个联通图,求 $k$ 个关键点联通的最小生成树权值 设 $f[o][i]$ 表示当前关键点选择状态为 $o$ ,以点 $i$ 为根的树的最小权值 初始 $f[1<<( ...

  3. HDU - 6183 动态开点线段树 || 令人绝望的线段树

    一看C才[0,50],肯定要开51棵线段树维护y区间的最小x值啦 是男人就上51棵..等等空间爆几倍了 动态开点!51棵线段树用全局节点变量控制,有点像主席树 清空工作很简单,把51个树根清掉然后回收 ...

  4. EntityFramework 并发处理

    转载自:http://www.cnblogs.com/TianFang/p/4439215.html 什么是并发? 并发分悲观并发和乐观并发. 悲观并发:比如有两个用户A,B,同时登录系统修改一个文档 ...

  5. js插件编程-tab框

    JS代码 (function (w) { //tab对象 function Tab(config) { //定义变量,防止变量污染 this.tabMenus=null; this.tabMains= ...

  6. CentOS 6.2出现Disk sda contains BIOS RAID metadata解决方法

    今天在安装CentOS 6.2的时候,当进到检测硬盘的时候,总是过不去,报错如下: Disk sda contains BIOS RAID metadata, but is not part of a ...

  7. Hyda爆破

    转载:http://www.cnblogs.com/bmjoker/ 2018,网站的防护(sql,xss...)的安全保护也已经上升了一个等级,但是由于管理员的安全意识薄弱,网站弱口令漏洞依然猖獗, ...

  8. 使用 PuTTY 时遇到错误:“expected key exchange group packet from server”

    情况 使用 PuTTY 通过 SSH 访问 ProxySG 或 Advanced Secure Gateway (ASG) 时,您会看到如下错误:"expected key exchange ...

  9. C# MODBUS 通信

    背景 电厂有多组监控设备,需要在指定的设备上显示某些数据(其他设备对接过来的).通信协议是modbus主从结构. 源码: http://download.csdn.net/download/wolf1 ...

  10. Zabbix的安装(源码安装)

    zabbix3.0完全安装 安装zabbix首先需要安装ltmp(lnmp),这里的t是指tengine(taobao的nginx版本),安装教程见 http://www.ltmp.cc 安装的时候P ...