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 相关文章推荐
Windows下搭建python开发环境详细步骤
Jul 20 Python
神经网络(BP)算法Python实现及应用
Apr 16 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
Dec 12 Python
Python3 单行多行万能正则匹配方法
Jan 07 Python
python多进程(加入进程池)操作常见案例
Oct 21 Python
Python 简单计算要求形状面积的实例
Jan 18 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
Feb 05 Python
Django-rest-framework中过滤器的定制实例
Apr 01 Python
使用pycharm和pylint检查python代码规范操作
Jun 09 Python
完美解决keras保存好的model不能成功加载问题
Jun 11 Python
python如何建立全零数组
Jul 19 Python
Python使用tkinter实现小时钟效果
Feb 22 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
第二节 对象模型 [2]
2006/10/09 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
2014/04/18 PHP
PHP也能干大事之PHP中的编码解码详解
2015/04/20 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
ArrayList类(增强版)
2007/04/04 Javascript
JavaScript为对象原型prototype添加属性的两种方式
2010/08/01 Javascript
js遍历td tr等html元素
2012/12/13 Javascript
jQuery动画animate方法使用介绍
2013/05/06 Javascript
查找页面中所有类为test的结点的方法
2014/03/28 Javascript
javascript实现限制上传文件大小
2015/02/06 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
2015/09/14 Javascript
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
Vue按需加载的具体实现
2017/12/02 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
微信小程序实现人脸识别
2018/05/25 Javascript
解决LayUI表单获取不到data的问题
2018/08/20 Javascript
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
angular5 子组件监听父组件传入值的变化方法
2018/09/30 Javascript
详解Vue This$Store总结
2018/12/17 Javascript
Python实现调度算法代码详解
2017/12/01 Python
Python基础之变量基本用法与进阶详解
2020/01/03 Python
如何在Python对Excel进行读取
2020/06/04 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
美国婴儿用品店:Babies”R”Us
2017/10/12 全球购物
营业员实习自我鉴定
2013/12/07 职场文书
生产总经理岗位职责
2013/12/19 职场文书
企业军训感言
2014/02/08 职场文书
挂职自我鉴定
2014/02/26 职场文书
迎新晚会策划方案
2014/06/13 职场文书
植树造林的宣传标语
2014/06/23 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
刘公岛导游词
2015/02/05 职场文书
幼儿园园长安全责任书
2015/05/08 职场文书
关于使用Redisson订阅数问题
2022/01/18 Redis