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

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. POJ_2010 Moo University - Financial Aid 【堆预处理】

    一.题面 POJ2010 二.分析 堆预处理 首先可以考虑吧随便取一个点,判断两侧的最小的总费用是多少,然后相加判断是否满足条件.如果直接判断会超时,所以需要用大根堆预处理一下.先看从分数最小的往最大 ...

  2. Axis 生成客户端client stub文件

    [转自] http://blog.csdn.net/qiao000_000/article/details/5568442 开发前,有个同事先给我们不熟悉Web Service的程序员进行了一些培训, ...

  3. 青蛙的约会----POJ1061

    青蛙的约会 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 133905   Accepted: 29707 Descript ...

  4. 如何在新导入的python项目中一次性生成依赖的第三方库

    requirements.txt用来记录项目所有的依赖包和版本号,只需要一个简单的pip命令就能完成. pip freeze >requirements.txt 然后就可以用 pip insta ...

  5. PIE SDK临时元素的绘制

    1. 功能简介 在数据的处理中会用到临时元素的绘制,用于当前显示:临时元素包括点.线.面.文本.图片五种元素:目前PIE SDK支持这五种元素的绘制,下面对五种临时元素的绘制功能进行介绍. 2. 功能 ...

  6. PIE SDK算法的同步调用

    1.    算法功能简介 同步调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为. PIE SDK支持算法功能的执行,下面对算法的同步调用功能进行介绍. 2.    算法功能实现说明 2. ...

  7. Knime 连接 MYSQL 8

    mysql8 腾空出世,话说mysql 跨过 6 7 版本直迈8,对这个数据库有跨时代的意思,引擎机制有个革命性的变革.决定尝试一把. 用大数据ETL工具Knime抽取数据.结果尴尬了: ERROR ...

  8. python数组(列表、元组及字典)

    python数组的使用 2010-07-28 17:17 1.Python的数组分三种类型: (1) list 普通的链表,初始化后可以通过特定方法动态增加元素. 定义方式:arr = [元素] (2 ...

  9. springboot+Zookeeper+Dubbo入门

    最近想学习dubbo,就利用周末写了一个特别简单的demo,不知道有没有用,先记录一下. 1.安装zookeeper并启动(安装看我上一篇博客https://www.cnblogs.com/huang ...

  10. shell特殊字符汇总【转】

    Linux下无论如何都是要用到shell命令的,在Shell的实际使用中,有编程经验的很容易上手,但稍微有难度的是shell里面的那些个符号,各种特殊的符号在我们编写Shell脚本的时候如果能够用的好 ...