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使用urllib2获取网络资源实例讲解
Dec 02 Python
Python3实现生成随机密码的方法
Aug 23 Python
举例详解Python中threading模块的几个常用方法
Jun 18 Python
python编程之requests在网络请求中添加cookies参数方法详解
Oct 25 Python
用python简单实现mysql数据同步到ElasticSearch的教程
May 30 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
Jun 19 Python
Python静态类型检查新工具之pyright 使用指南
Apr 26 Python
python 日期排序的实例代码
Jul 11 Python
Python 绘制酷炫的三维图步骤详解
Jul 12 Python
PyTorch和Keras计算模型参数的例子
Jan 02 Python
Django用数据库表反向生成models类知识点详解
Mar 25 Python
使用豆瓣源来安装python中的第三方库方法
Jan 26 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的ASP防火墙
2006/10/09 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
PHP implode()函数用法讲解
2019/03/08 PHP
thinkphp5框架路由原理与用法详解
2020/02/11 PHP
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
jQuery使用经验小技巧(推荐)
2016/05/31 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
微信小程序 下拉菜单的实现
2017/04/06 Javascript
深入浅析AngularJs模版与v-bind
2018/07/06 Javascript
基于JavaScript实现一个简单的Vue
2018/09/26 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
vue实现简单学生信息管理
2020/05/30 Javascript
js实现表单项的全选、反选及删除操作示例
2020/06/05 Javascript
[01:05:32]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第一局
2016/03/04 DOTA
Python入门之后再看点什么好?
2018/03/05 Python
《与孩子一起学编程》python自测题
2018/05/27 Python
python进程的状态、创建及使用方法详解
2019/12/06 Python
html5 web本地存储将取代我们的cookie
2012/12/26 HTML / CSS
下列程序在32位linux或unix中的结果是什么
2015/01/26 面试题
新闻记者个人求职的自我评价
2013/11/28 职场文书
小学母亲节活动方案
2014/03/14 职场文书
安全承诺书格式
2014/05/21 职场文书
管理标语大全
2014/06/24 职场文书
2014年四风问题个人对照自查剖析材料
2014/09/15 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
幼儿园托班开学寄语(2015秋季)
2015/05/27 职场文书
羊脂球读书笔记
2015/06/30 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
redis缓存存储Session原理机制
2021/11/20 Redis
HTTP中的Content-type详解
2022/01/18 HTML / CSS