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中的类学习笔记
Sep 23 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
Apr 25 Python
Python实现简单的文本相似度分析操作详解
Jun 16 Python
Python实现通过继承覆盖方法示例
Jul 02 Python
Python图像处理之gif动态图的解析与合成操作详解
Dec 30 Python
python如何制作缩略图
Apr 30 Python
Python识别html主要文本框过程解析
Feb 18 Python
Jupyter notebook运行Spark+Scala教程
Apr 10 Python
在keras里面实现计算f1-score的代码
Jun 15 Python
用python实现名片管理系统
Jun 18 Python
Python爬虫之Spider类用法简单介绍
Aug 04 Python
Python获取字典中某个key的value
Apr 13 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制作简单的内容采集器的代码
2007/11/28 PHP
PHP获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
PHP加速 eAccelerator配置和使用指南
2009/06/05 PHP
PHP中最容易忘记的一些知识点总结
2013/04/28 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
2014/08/21 PHP
php的ddos攻击解决方法
2015/01/08 PHP
php面向对象值单例模式
2016/05/03 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
PHP如何实现订单的延时处理详解
2017/12/30 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
jquery struts 验证唯一标识(公用方法)
2013/03/27 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
jQuery中append()方法用法实例
2014/12/25 Javascript
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
关于vue中 $emit的用法详解
2018/04/12 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
Javascript和jquery在selenium的使用过程
2019/10/31 jQuery
JS实现简单省市二级联动
2019/11/27 Javascript
[56:35]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第一局
2016/03/06 DOTA
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
python获取多线程及子线程的返回值
2017/11/15 Python
windows下Virtualenvwrapper安装教程
2017/12/13 Python
django框架实现模板中获取request 的各种信息示例
2019/07/01 Python
Django框架视图层URL映射与反向解析实例分析
2019/07/29 Python
基于python实现破解滑动验证码过程解析
2020/05/28 Python
BRASTY捷克:购买香水、化妆品、手袋和手表
2017/07/12 全球购物
Nike澳大利亚官网:Nike.com (AU)
2019/06/03 全球购物
应届毕业生求职信范文
2013/12/18 职场文书
经管应届生求职信范文
2014/05/18 职场文书
校运会口号
2014/06/18 职场文书
Python基础之赋值,浅拷贝,深拷贝的区别
2021/04/30 Python
python中os.path.join()函数实例用法
2021/05/26 Python