wxpython 学习笔记 第一天


Posted in Python onMarch 16, 2009

1,导入 wxpython 库
import wx
2,建立窗体构造类
class 名字(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, '工具',size=(300, 200))
3,建立 面板 panel = wx.Panel(self)
设置面板背景
panel.SetBackgroundColour('White')
为状态显示栏,显示在面板最下面
wx.Frame.CreateStatusBar()
#这个为工具菜单,显示在窗体上面,工具菜单一般是有图标的菜单
wx.Frame.CreateToolBar()
#为菜单也是显示在窗体上面
wx.MenuBar()
#菜单栏上面的具体菜单
wx.Menu()
关于事件
wx.Frame.Bind
参数一,绑定的时间类型
参数二,触发的函数
参数三,确定那个窗体上的id触发
关于图片处理
#获取图片对象
image = wx.Image('yuanxiao.jpg', wx.BITMAP_TYPE_JPEG)
#取得位图流
temp = image.ConvertToBitmap()
关于具体菜单栏
Append方法添加菜单项
参数一,菜单项唯一id
参数二,菜单项名称
参数三,选择该菜单时的状态栏显示文字
AppendMenu方法为添加下一级菜单
参数一,菜单项唯一id
参数二,菜单项名称
参数三,具体的菜单项对象
关于窗体的构造函数
wx.Frame(parent, id=-1, title="", pos=wx.DefaultPosition,
size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE,
name="frame")
我们在别的窗口部件的构造器中将会看到类似的参数。参数的说明如下:
parent:框架的父窗口。对于顶级窗口,这个值是None。框架随其父窗口的销毁而销毁。取决于平台,框架可被限制只出现在父窗口的顶部。在多文档界面的情况下,子窗口被限制为只能在父窗口中移动和缩放。
id:关于新窗口的wxPython ID号。你可以明确地传递一个。或传递-1,这将导致wxPython自动生成一个新的ID。
title:窗口的标题。
pos:一个wx.Point对象,它指定这个新窗口的左上角在屏幕中的位置。在图形用户界面程序中,通常(0,0)是显示器的左上角。这个默认的(-1,-1)将让系统决定窗口的位置。
size:一个wx.Size对象,它指定这个窗口的初始尺寸。这个默认的(-1,-1)将让系统决定窗口的初始尺寸。
style:指定窗口的类型的常量。你可以使用或运算来组合它们。
name:框架的内在的名字。以后你可以使用它来寻找这个窗口。
记住,这些参数将被传递给父类的构造器方法:wx.Frame.__init__()。
创建wx.Frame子类的方法如下所示:
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "My Friendly Window",
(100, 100), (100, 100))
关于框架的一些属性
frame.Show(False) # 使框架不可见.
frame.Show(True) # True是默认值,使框架可见.
frame.Hide() # 等同于frame.Show(False)
关闭窗体
wx.Exit()
实例程序
#设置python使用的编码
#coding=utf-8
#加载wx库
import wx
#框架类
class ToolbarFrame(wx.Frame):
def __init__(self, parent, id):#构造函数
#构造框架
wx.Frame.__init__(self, parent, id, '工具',size=(300, 200))
#填充面板
panel = wx.Panel(self)
#设置面板背景颜色
panel.SetBackgroundColour('White')
#建立状态栏
statusBar = self.CreateStatusBar()
#建立工具栏
toolbar = self.CreateToolBar()
#取得工具栏图标对象
image = wx.Image('yuanxiao.jpg', wx.BITMAP_TYPE_JPEG)
#取得图标位图流
temp = image.ConvertToBitmap()
#建立工具栏
toolbar.AddSimpleTool(wx.NewId(),temp, "New", "Long help for 'New'")
#设置工具栏位置
toolbar.Realize()
#建立菜单栏
menuBar = wx.MenuBar()
#建立菜单项
menu1 = wx.Menu()
#添加下级菜单项
menu1.Append(wx.NewId(), "C&ut", "Copy in status bar")
#设置菜单项里的分割线
menu1.AppendSeparator()
sm = wx.Menu()
sm.Append(-1,'测试1');
sm.Append(-1,'测试2');
#把二级菜单项添加到一级菜单
menu1.AppendMenu(-1,'下级',sm);
#把菜单项添加单菜单栏里
menuBar.Append(menu1, "文件(&F)")
menu2 = wx.Menu()
nid = wx.NewId()
menu2.Append(nid, "&Copy", "Copy in status bar")
#事件绑定
self.Bind(wx.EVT_MENU, self.onQuit, id=nid)
menu2.Append(wx.NewId(), "C&ut", "")
menu2.Append(wx.NewId(), "&Paste", "")
menu2.AppendSeparator()
menu2.Append(wx.NewId(), "&Options...", "Display Options")
menuBar.Append(menu2, "&Edit")
#设置菜单栏展示
self.SetMenuBar(menuBar)
#触发的事件
def onQuit(self, event):
#弹出框
dlg = wx.MessageDialog(None, 'Is this the coolest thing ever!','MessageDialog', wx.YES_NO | wx.ICON_QUESTION)
result = dlg.ShowModal()
dlg.Destroy()
#执行
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = ToolbarFrame(parent=None, id=-1)
frame.Show()
app.MainLoop()
开源项目介绍
http://onlypython.group.javaeye.com/group/blog/309552
讲解开发
http://rainytooo.javaeye.com/blog/150228
wxPython in Action 中文文档
http://www.pythontik.com/blog/article.asp?id=184
作者 叁石 sanshi0815

Python 相关文章推荐
Python基础教程之正则表达式基本语法以及re模块
Mar 25 Python
pandas中的DataFrame按指定顺序输出所有列的方法
Apr 10 Python
python将txt文件读取为字典的示例
Dec 22 Python
在macOS上搭建python环境的实现方法
Aug 13 Python
python web框架中实现原生分页
Sep 08 Python
Python基于百度AI实现OCR文字识别
Apr 02 Python
Python collections.defaultdict模块用法详解
Jun 18 Python
keras 实现轻量级网络ShuffleNet教程
Jun 19 Python
Python如何创建装饰器时保留函数元信息
Aug 07 Python
python爬虫构建代理ip池抓取数据库的示例代码
Sep 22 Python
python利用pytesseract 实现本地识别图片文字
Dec 14 Python
python 提取html文本的方法
May 20 Python
Python 返回汉字的汉语拼音
Feb 27 #Python
用Python的urllib库提交WEB表单
Feb 24 #Python
wxpython 学习笔记 第一天
Feb 09 #Python
python 输出一个两行字符的变量
Feb 05 #Python
Python 调用DLL操作抄表机
Jan 12 #Python
Python MD5文件生成码
Jan 12 #Python
Python Mysql数据库操作 Perl操作Mysql数据库
Jan 12 #Python
You might like
十天学会php之第七天
2006/10/09 PHP
关于文本留言本的分页代码
2006/10/09 PHP
php购物车实现代码
2011/10/10 PHP
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
Yii框架视图、视图布局、视图数据块操作示例
2019/10/14 PHP
JavaScript全排列的六种算法 具体实现
2013/06/29 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
2015/03/11 Javascript
js中this用法实例详解
2015/05/05 Javascript
jQuery获取上传文件的名称的正则表达式
2015/05/21 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
JavaScript DOM 对象深入了解
2016/07/20 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
2017/02/16 Javascript
常用的js方法合集
2017/03/10 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
十分钟带你快速了解React16新特性
2017/11/10 Javascript
Vue实现内部组件轮播切换效果的示例代码
2018/04/07 Javascript
详解javascript函数写法大全
2019/03/25 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
nodejs 递归拷贝、读取目录下所有文件和目录
2019/07/18 NodeJs
Python中super的用法实例
2015/05/28 Python
python 容器总结整理
2017/04/04 Python
详解Python中for循环是如何工作的
2017/06/30 Python
pygame实现俄罗斯方块游戏
2018/06/26 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
将python依赖包打包成window下可执行文件bat方式
2019/12/26 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
python sitk.show()与imageJ结合使用常见的问题
2020/04/20 Python
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
应届护士推荐信
2013/11/16 职场文书
2016年社区文体活动总结
2016/04/06 职场文书
详解thinkphp的Auth类认证
2021/05/28 PHP
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android