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协程用法实例分析
Jun 04 Python
Python中read()、readline()和readlines()三者间的区别和用法
Jul 30 Python
Python实现的生成格雷码功能示例
Jan 24 Python
Python对象与引用的介绍
Jan 24 Python
让你Python到很爽的加速递归函数的装饰器
May 26 Python
python 字典访问的三种方法小结
Dec 05 Python
基于Python数据分析之pandas统计分析
Mar 03 Python
使用Python+selenium实现第一个自动化测试脚本
Mar 17 Python
浅谈Django前端后端值传递问题
Jul 15 Python
python关于倒排列的知识点总结
Oct 13 Python
使用django自带的user做外键的方法
Nov 30 Python
matplotlib之多边形选区(PolygonSelector)的使用
Feb 24 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
编译问题
2006/10/09 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
php实现的二叉树遍历算法示例
2017/06/15 PHP
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
jquery.mobile 共同布局遇到的问题小结
2015/02/10 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
微信小程序 教程之列表渲染
2016/10/18 Javascript
jquery编写日期选择器
2017/03/16 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
详解javascript常用工具类的封装
2018/01/30 Javascript
JS中Map和ForEach的区别
2018/02/05 Javascript
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
Python 将json序列化后的字符串转换成字典(推荐)
2020/01/06 Python
python温度转换华氏温度实现代码
2020/12/06 Python
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
CSS3 rgb and rgba(透明色)的使用详解
2020/09/25 HTML / CSS
美国最好的保健品打折网店:Swanson
2017/08/04 全球购物
波兰在线杂货店:Polski Koszyk
2019/11/02 全球购物
日本最大的购物网站乐天市场国际版:Rakuten Global Market(支持中文)
2020/02/03 全球购物
得到Class的三个过程是什么
2012/08/10 面试题
自动化职业生涯规划书范文
2014/01/03 职场文书
校庆接待方案
2014/03/18 职场文书
教职工代表大会主持词
2014/04/01 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
个人原因辞职信模板
2015/05/13 职场文书
网吧员工管理制度
2015/08/05 职场文书
安全教育培训制度
2015/08/06 职场文书
浅谈Redis在直播场景的实践方案
2021/04/27 Redis
Python 循环读取数据内存不足的解决方案
2021/05/25 Python
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python
Python中可变和不可变对象的深入讲解
2021/08/02 Python