wxPython中工具栏、状态栏、菜单实现

简介:

 wxPython是python可视化编程中的一个很好的模块,一以下的代码主要讲述工具栏、状态栏、菜单、菜单事件的实现(可参考:http://www.czug.org/python/wxpythoninaction/):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import  wx
import  wx.py.images
class  ToolbarFrame(wx.Frame):
     def  __init__( self , parent,  id ):
           
         wx.Frame.__init__( self , parent,  id 'Toolbars' , size  =  ( 600 400 ))
           
         panel  =  wx.Panel( self )
         panel.SetBackgroundColour( 'White' )
           
         #创建状态栏
         statusBar  =  self .CreateStatusBar()
           
         #创建工具栏
         toolbar  =  self .CreateToolBar()
         #增加一个工具
         toolbar.AddSimpleTool(wx.NewId(), wx.py.images.getPyBitmap(),  "New" "Long help for 'New'" )
         toolbar.AddSimpleTool(wx.NewId(), wx.py.images.getPyBitmap(),  "Edit" "Long help for 'Edit'" )
         #准备显示
         toolbar.Realize()
           
         #创建菜单
         menuBar  =  wx.MenuBar()
         menu1  =  wx.Menu()
         menuBar.Append(menu1, u "&文件" #菜单项目1
         self .close  =  menu1.Append(wx.NewId(), u "退出(&X)" , "")
         menu2  =  wx.Menu()
         #菜单内容&表示随后的字符为热键,参数3为在状态栏上显示的菜单项说明
         self .Copy  =  menu2.Append(wx.NewId(),  "&Copy" "Copy in status bar" )
         self .Cut  =  menu2.Append(wx.NewId(),  "C&ut" , "")
         self .Paste  =  menu2.Append(wx.NewId(),  "Paste" , "")
         menu2.AppendSeparator()
         self .Options  =  menu2.Append(wx.NewId(),  "&Options..." "Display Options" )
         self .Edit  =  menuBar.Append(menu2,  "&Edit" )
         self .SetMenuBar(menuBar)
         #调用菜单下拉的退出事件
         self .Bind(wx.EVT_MENU, self .OnClose, self .close)
     def  OnClose( self ,event): #退出事件
         self .Close()
if  __name__  = =  '__main__' :
     app  =  wx.PySimpleApp()
     frame  =  ToolbarFrame(parent  =  None id  =  - 1 )
     frame.Show()
     app.MainLoop()




本文转自 lover00751CTO博客,原文链接:http://blog.51cto.com/wangwei007/1209303,如需转载请自行联系原作者
相关文章
|
Linux
Linux制作deb格式安装包教程
Linux制作deb格式安装包教程
1182 0
|
算法 Java 数据安全/隐私保护
|
2月前
|
Ubuntu
Ubuntu系统重装:一步一步指南
本文介绍了如何重装Ubuntu系统,重装系统可以让电脑重新恢复到原始状态,从而解决电脑出现的各种问题,提高电脑的运行效率。重装系统的过程需要准备U盘,从官网下载Ubuntu系统,进入BIOS设置,根据提示进行安装,安装完成后重启电脑即可完成重装Ubuntu系统。
|
10月前
|
网络协议 算法 网络性能优化
第十一问:TCP的窗口机制是什么?
TCP的窗口机制是实现流量控制和拥塞控制的重要手段,主要包括滑动窗口、接收窗口(rwnd)和拥塞窗口(cwnd)。滑动窗口定义了发送方允许发送的数据范围,接收窗口控制接收方的缓冲区容量,拥塞窗口防止网络拥塞。这些窗口通过动态调整,确保数据传输的高效性和可靠性。
878 1
|
9月前
|
人工智能 数据处理
LatentSync:根据音频生成高分辨率、动态逼真的唇形同步视频
LatentSync 是由字节跳动与北京交通大学联合推出的端到端唇形同步框架,基于音频条件的潜在扩散模型,能够生成高分辨率、动态逼真的唇同步视频,适用于影视、教育、广告等多个领域。
776 19
LatentSync:根据音频生成高分辨率、动态逼真的唇形同步视频
|
安全 网络安全 数据安全/隐私保护
全面了解电子邮件的优点和不足之处
电子邮件因其易用性、透明度和低成本而长期受欢迎,但过度饱和和安全风险是其主要缺点。2022年,90%以上的美国人使用电子邮件,使其超越了即时消息和社交媒体。优点包括可访问性、透明度(如数据安全措施)、一致性(离线发送,线上接收)和定制化(如自定义域名)。然而,邮件过量可能导致信息忽略,而安全问题如网络钓鱼需要防范。有效的电子邮件管理策略和安全培训是必要的。
390 0
|
Android开发 Python
uiautomator2:python控制手机的神器
uiautomator2:python控制手机的神器
346 0
|
11月前
|
网络协议 网络虚拟化 数据中心
VLAN和VXLAN,两者有何区别
随着网络技术发展,云计算因其高利用率、低管理成本及灵活性成为各行业IT建设新趋势。服务器虚拟化作为核心技术之一,提升了数据中心计算密度,但传统二三层网络难以满足虚拟机无限制迁移需求。VLAN技术因支持VLAN数有限,无法满足云服务商需求;而VXLAN技术通过将二层网络扩展到三层,可支持多达1600万个网络,有效克服了VLAN的局限性,实现多租户支持和网络可靠性的提升。
354 1
Python 代码从 `.env` 文件中读取环境变量
这篇文章介绍了如何在Python项目中使用`python-dotenv`库从`.env`文件读取环境变量的详细步骤,包括安装库、创建`.env`文件、在代码中加载和读取环境变量。
|
设计模式 前端开发 数据可视化
LiveCharts2:简单灵活交互式且功能强大的.NET图表库
LiveCharts2:简单灵活交互式且功能强大的.NET图表库
550 0