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 相关文章推荐
wxpython中自定义事件的实现与使用方法分析
Jul 21 Python
Python学习小技巧之列表项的排序
May 20 Python
python邮件发送smtplib使用详解
Jun 16 Python
Pycharm无法使用已经安装Selenium的解决方法
Oct 13 Python
python实现简单五子棋游戏
Jun 18 Python
利用Python校准本地时间的方法教程
Oct 31 Python
Django 设置多环境配置文件载入问题
Feb 25 Python
Python yield的用法实例分析
Mar 06 Python
pycharm通过anaconda安装pyqt5的教程
Mar 24 Python
如何导出python安装的所有模块名称和版本号到文件中
Jun 05 Python
Python: glob匹配文件的操作
Dec 11 Python
pytorch 实现多个Dataloader同时训练
May 29 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上传文件的增强函数
2010/07/21 PHP
PHP实现简单搜歌的方法
2015/07/28 PHP
JavaScript面向对象程序设计三 原型模式(上)
2011/12/21 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
javascript实现俄罗斯方块游戏的思路和方法
2015/04/27 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
jQuery+css实现的切换图片功能代码
2016/01/27 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
2016/12/26 Javascript
微信小程序 PHP后端form表单提交实例详解
2017/01/12 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
2017/01/21 Javascript
Vue.js上下滚动加载组件的实例代码
2017/07/17 Javascript
parabola.js抛物线与加入购物车效果的示例代码
2017/10/25 Javascript
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
webpack打包并将文件加载到指定的位置方法
2018/02/22 Javascript
微信小程序自定义音乐进度条的实例代码
2018/08/28 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
javascript中undefined的本质解析
2019/07/31 Javascript
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
[06:16]DOTA2守卫传承者——职业选手谈心路历程
2015/02/26 DOTA
Python实现求两个csv文件交集的方法
2017/09/06 Python
每天迁移MySQL历史数据到历史库Python脚本
2018/04/13 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
matplotlib事件处理基础(事件绑定、事件属性)
2021/02/03 Python
台湾旅游网站:灿星旅游
2018/10/11 全球购物
StubHub中国:购买和出售全球活动门票
2020/01/01 全球购物
人事主管的岗位职责
2013/11/16 职场文书
汽车队司机先进事迹材料
2014/02/01 职场文书
施工材料员岗位职责
2014/02/12 职场文书
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
给学校的建议书
2014/03/12 职场文书
中班开学寄语
2014/04/04 职场文书
城管综合整治方案
2014/05/01 职场文书
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL