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实用技巧两则
Aug 29 Python
Python中使用异常处理来判断运行的操作系统平台方法
Jan 22 Python
优化Python代码使其加快作用域内的查找
Mar 30 Python
把csv文件转化为数组及数组的切片方法
Jul 04 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
Nov 30 Python
python读取txt文件,去掉空格计算每行长度的方法
Dec 20 Python
详解用python自制微信机器人,定时发送天气预报
Mar 25 Python
Django之使用内置函数和celery发邮件的方法示例
Sep 16 Python
PyQT5 实现快捷键复制表格数据的方法示例
Jun 19 Python
python 抓取知乎指定回答下视频的方法
Jul 09 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
Feb 01 Python
Python中requests库的用法详解
Jun 05 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
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
摘自织梦CMS的HTTP文件下载类
2015/08/08 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
javascript 面向对象编程基础 多态
2009/08/21 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
js实现九宫格拼图小游戏
2017/02/13 Javascript
js 用于检测类数组对象的函数方法
2017/05/02 Javascript
很棒的vue弹窗组件
2017/05/24 Javascript
原生JS+Canvas实现五子棋游戏实例
2017/06/19 Javascript
Angular模板表单校验方法详解
2017/08/11 Javascript
Vue的MVVM实现方法
2017/08/16 Javascript
JS实现简单的抽奖转盘效果示例
2019/02/16 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
[54:51]Ti4 冒泡赛第二轮LGD vs C9 3
2014/07/14 DOTA
[16:56]教你分分钟做大人:司夜刺客
2014/10/30 DOTA
Python实现将xml导入至excel
2015/11/20 Python
对pandas里的loc并列条件索引的实例讲解
2018/11/15 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
2019/01/07 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
关于sys.stdout和print的区别详解
2019/12/05 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
CSS3 完美实现圆角效果
2009/07/13 HTML / CSS
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
Topshop法国官网:英国快速时尚品牌
2018/04/08 全球购物
Kiehl’s科颜氏西班牙官方网站:源自美国的植物护肤品牌
2020/02/22 全球购物
linux系统都有哪些运行级别
2016/03/26 面试题
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
《口技》教学反思
2014/02/21 职场文书
领导班子自我剖析材料
2014/08/16 职场文书
退休欢送会主持词
2015/07/01 职场文书
MongoDB数据库的安装步骤
2021/06/18 MongoDB
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL
SQLServer RANK() 排名函数的使用
2022/03/23 SQL Server