wxpython 创建工具栏和菜单栏

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

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的一个方法,来放置菜单栏,它会自动放置到合适的位置。

时间: 2024-12-18 21:45:23

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

[ExtJs5.1.0系列-第4天] 工具栏和菜单栏

工具栏和菜单栏 前两节的内容,我们介绍了信息提示框和进度条,对ExtJs组件的配置及使用有了一定认识.本节内容将介绍工具栏(Ext.toolbar.Toolbar)组件和菜单(Ext.menu.Menu)组件的使用. 1.认识 Ext.toolbar.Toolbar Ext.toolbar.Toolbar是工具栏的基础组件,它相当于容器,在其中可以放置各种工具栏元素,主要包括按钮.文字和菜单组件.下表中给出了Ext.toolbar.Toolbar组件的主要配置项及常用方法: 配置项 类型 说明

VISIO中的工具栏、菜单栏丢失的原因及解决办法

症状 在 Microsoft Visio 中,您可能会遇到一个或多个以下症状: 您所了解的工具栏是启用是不可见的. 找不到菜单栏. 按钮从工具栏中消失了. 原因 如果您意外地拖动工具栏或菜单栏可见屏幕区域之外,则会出现这些症状. 如果满足下列条件之一为真,则也会发生类似问题: 显示分辨率是太低,无法显示工具栏上的所有按钮. 两个工具栏停靠在同一行上相邻. 在这种情况下 Visio 会隐藏一些按钮. 解决方案 若要恢复工具栏或菜单栏,使用下列方法之一: 将显示分辨率设置为 800 x 600 或更

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

---恢复内容开始--- 首先CToolBarCtrl类内部维护了三个重要的数据结构:一个图像列表,一个字符串列表,一个TBBUTTON结构体的列表. 知道了这一点,下面的理解起来就轻松了.慢慢来: 用CToolBarCtrl类为对话框创建工具栏的一般步骤: 1.准备一张工具栏的位图(有两种方法加载位图,一种是为工具栏中每一个按钮关联一张位图,第二种是加载一整张位图,这张位图中有所有工具栏按钮的图像,然后设定每个按钮图像的大小,这样系统就可以把一整张位图按像素分成多张位图,本文采用第二种方法)

创建微信企业号菜单栏

//创建微信企业号菜单栏 public static string CustomMenu() { //获取Token string AppUrl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?";string AppID = "wxc230dd116f51778d";string AppSecret = "s3O7Hzmo70kI69S-ghQ5KbF0-A9U0YuZm7IRvBLjwx7grbUJN18

禁用IE的工具栏、菜单栏、状态栏、最大化功能

从一个页面跳转到WebFrame.aspx页面,并且禁用IE的工具栏.菜单栏.状态栏.最大化功能,且IE最大化 <script type="text/javascript"> function OpenWebFrame() { window.opener = null; window.open("WebFrame.aspx", "", "width=" + screen.availWidth + ",he

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

原文:http://blog.csdn.net/lihongxun945/article/details/48951199 前面我们已经可以在一个Activity中添加一些按钮之类的组件.由于手机的屏幕很小,所以很多时候我们会需要用到工具栏,通过下拉菜单之类的方式来节省空间. Android 提供了对工具栏按钮的强大支持. 增加一个工具栏按钮 我们现在给 MainActivity 增加一个搜索按钮.增加一个按钮需要做这三件事 一,在 res/menu/activity_main.xml 中增加一

[ExtJs5.1.0系列-第5天]工具栏和菜单栏(2)-菜单栏介绍

----------------------------------------------------------------------------------------------- 菜 单 栏 介 绍 分 割 线 ----------------------------------------------------------------------------------------------- 菜单栏使用介绍 菜单组件相当于菜单项的容器,在菜单组件中不但可以容纳Ext.menu

qt 工具栏和菜单栏

在前面的QMainWindow的基础之上,我们开始着手建造我们的应用程序.虽然现在已经有一个框架,但是,确切地说我们还一行代码没有写呢!下面的工作就不那么简单了!在这一节里面,我们要为我们的框架添加菜单和工具条. 就像Swing里面的Action一样,Qt里面也有一个类似的类,叫做QAction.顾名思义,QAction类保存有关于这个动作,也就是action的信息,比如它的文本描述.图标.快捷键.回调函数(也就是信号槽),等等.神奇的是,QAction能够根据添加的位置来改变自己的样子——如果

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

前两天的时候学习了winfrom,简单地说就是各种布局,然后给按钮,textbox等各种控件添加各种事件的操作,经过前天一晚上,昨天一天的练习操作的还算熟练,但是对构造函数传值还是不是很了解,由于各种原因,只能再练习里多多注意了: 1.容器布局: 布局一定要设置好最小的可拖拽的大小,最大最好也设置,否则会导致控件乱七八糟: Anchor属性针对于某一个控件,可以对控件进行边距的设置来控制控件的位置: Dock属性可以把控件或者容器固定到一个位置,进行更方便的布局,最实用的就是用Dock控制Pan