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程序
Apr 04 Python
Python统计列表中的重复项出现的次数的方法
Aug 18 Python
windows下python安装pip图文教程
May 25 Python
Python 学习教程之networkx
Apr 15 Python
python 梯度法求解函数极值的实例
Jul 10 Python
python字典的常用方法总结
Jul 31 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
Sep 25 Python
Python实现大数据收集至excel的思路详解
Jan 03 Python
python继承threading.Thread实现有返回值的子类实例
May 02 Python
python模块如何查看
Jun 16 Python
python 基于opencv实现图像增强
Dec 23 Python
python 三种方法提取pdf中的图片
Feb 07 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/12/06 PHP
Drupal简体中文语言包安装教程
2014/09/27 PHP
php实现兼容2038年后Unix时间戳转换函数
2015/03/18 PHP
PHP加密解密类实例分析
2015/04/20 PHP
php 实现301重定向跳转实例代码
2016/07/18 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
2017/06/28 PHP
YII框架行为behaviors用法示例
2019/04/26 PHP
详解PHP 7.4 中数组延展操作符语法知识点
2019/07/19 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
2016/07/28 Javascript
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
jQuery选择器之属性筛选选择器用法详解
2017/09/19 jQuery
基于JavaScript中标识符的命名规则介绍
2018/01/06 Javascript
React+Webpack快速上手指南(小结)
2018/08/15 Javascript
React父子组件间的传值的方法
2018/11/13 Javascript
Node.js+ELK日志规范的实现
2019/05/23 Javascript
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
2019/09/27 Javascript
使用layui前端框架弹出form表单以及提交的示例
2019/10/25 Javascript
js实现鼠标拖拽div左右滑动
2020/01/15 Javascript
原生JavaScript实现进度条
2021/02/19 Javascript
[01:24]2014DOTA2 TI第二日 YYF表示这届谁赢都有可能
2014/07/11 DOTA
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
Python中对象的引用与复制代码示例
2017/12/04 Python
Python利用递归实现文件的复制方法
2018/10/27 Python
django 类视图的使用方法详解
2019/07/24 Python
Python使用贪婪算法解决问题
2019/10/22 Python
python类中super() 的使用解析
2019/12/19 Python
解决import tensorflow as tf 出错的原因
2020/04/16 Python
Python实现王者荣耀自动刷金币的完整步骤
2021/01/22 Python
亿阳信通股份有限公司笔试题(C#)
2016/03/04 面试题
工业设计专业个人求职信范文
2013/12/28 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
2019年工作总结范文
2019/05/21 职场文书
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
2021/04/01 PHP
AJAX实现指定部分页面刷新效果
2021/10/16 Javascript