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处理文本文件并生成指定格式的文件
Jul 31 Python
用Python进行一些简单的自然语言处理的教程
Mar 31 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
Sep 19 Python
使用Python对SQLite数据库操作
Apr 06 Python
Windows下安装Django框架的方法简明教程
Mar 28 Python
Python 实现文件打包、上传与校验的方法
Feb 13 Python
Python参数类型以及常见的坑详解
Jul 08 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
Oct 17 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
Oct 30 Python
Python单元测试与测试用例简析
Nov 09 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
Jun 18 Python
pytorch中的 .view()函数的用法介绍
Mar 17 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学习笔记 类的声明与对象实例化
2011/06/13 PHP
基于PHP遍历数组的方法汇总分析
2013/06/08 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
30个最佳jQuery Lightbox效果插件分享
2011/04/11 Javascript
js opener的使用详解
2014/01/11 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
2015/07/05 Javascript
用svg制作富有动态的tooltip
2015/07/17 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
jQuery实现摸拟alert提示框
2016/05/22 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
10个经典的网页鼠标特效代码
2018/01/09 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
jQuery实现的老虎机跑动效果示例
2018/12/29 jQuery
vue瀑布流组件实现上拉加载更多
2020/03/10 Javascript
antd form表单数据回显操作
2020/11/02 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
python通过ftplib登录到ftp服务器的方法
2015/05/08 Python
常用python编程模板汇总
2016/02/12 Python
tensorflow实现简单的卷积网络
2018/05/24 Python
python对离散变量的one-hot编码方法
2018/07/11 Python
python通过zabbix api获取主机
2018/09/17 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
对Python Class之间函数的调用关系详解
2019/01/23 Python
python中的&&及||的实现示例
2019/08/07 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
企业安全生产月活动总结
2014/07/05 职场文书
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
2016春季小学开学寄语
2015/12/03 职场文书
利用python调用摄像头的实例分析
2021/06/07 Python
Python Pandas 删除列操作
2022/03/16 Python