python使用wxpython开发简单记事本的方法


Posted in Python onMay 20, 2015

本文实例讲述了python使用wxpython开发简单记事本的方法。分享给大家供大家参考。具体分析如下:

wxPython是Python编程语言的一个GUI工具箱。他使得Python程序员能够轻松的创建具有健壮、功能强大的图形用户界面的程序。它是Python语言对流行的wxWidgets跨平台GUI工具库的绑定。而wxWidgets是用C++语言写成的。

和Python语言与wxWidgetsGUI工具库一样,wxPython是开源软件。这意味着任何人都可以免费地使用它并且可以查看和修改它的源代码,或者贡献补丁,增加功能。

wxPython是跨平台的。这意味着同一个程序可以不经修改地在多种平台上运行。现今支持的平台有:32位微软Windows操作系统、大多数Unix或类Unix系统、苹果MacOS X。

下面使用wxpython编写一个简单的记事本程序,可以打开本地文件,编辑,保存。

#!/usr/bin/python 
import wx 
def OnOpen(event): 
  """ 
  Load a file into the textField. 
  """ 
  dialog = wx.FileDialog(None,'Notepad',style = wx.OPEN) 
  if dialog.ShowModal() == wx.ID_OK: 
    filename.SetValue(dialog.GetPath()) 
    file = open(dialog.GetPath()) 
    contents.SetValue(file.read()) 
    file.close() 
  dialog.Destroy() 
def OnSave(event): 
  """ 
  Save text into the orignal file. 
  """ 
  if filename.GetValue() == '': 
    dialog = wx.FileDialog(None,'Notepad',style = wx.SAVE) 
    if dialog.ShowModal() == wx.ID_OK: 
      filename.SetValue(dialog.GetPath()) 
      file = open(dialog.GetPath(), 'w') 
      file.write(contents.GetValue()) 
      file.close() 
    dialog.Destory() 
  else: 
    file = open(filename.GetValue(), 'w') 
    file.write(contents.GetValue()) 
    file.close() 
app = wx.App() 
win = wx.Frame(None, title="Simple Editor", size=(600,400)) 
bkg = wx.Panel(win) 
# Define a 'load' button and its label, 
# bind to an button event with a function 'load' 
loadButton = wx.Button(bkg, label='Open') 
loadButton.Bind(wx.EVT_BUTTON, OnOpen) 
# Define a 'save' button and its label, 
# bind to an button event with a function 'save' 
saveButton = wx.Button(bkg, label='Save') 
saveButton.Bind(wx.EVT_BUTTON, OnSave) 
# Define a textBox for filename. 
filename = wx.TextCtrl(bkg) 
# Define a textBox for file contents. 
contents = wx.TextCtrl(bkg, style=wx.TE_MULTILINE | wx.HSCROLL) 
# Use sizer to set relative position of the components. 
# Horizontal layout 
hbox = wx.BoxSizer() 
hbox.Add(filename, proportion=1, flag=wx.EXPAND) 
hbox.Add(loadButton, proportion=0, flag=wx.LEFT, border=5) 
hbox.Add(saveButton, proportion=0, flag=wx.LEFT, border=5) 
# Vertical layout 
vbox = wx.BoxSizer(wx.VERTICAL) 
vbox.Add(hbox, proportion=0, flag=wx.EXPAND | wx.ALL, border=5) 
vbox.Add(contents, proportion=1, 
     flag=wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, border=5) 
bkg.SetSizer(vbox) 
win.Show() 
app.MainLoop()

运行效果如下图所示:

python使用wxpython开发简单记事本的方法

这个例子是《Python基础教程》中的一个例子,并做了一些修改。虽然完成了基本的记事本功能,但是界面略显简单,而且代码也没有很好地遵循面向对象编程原则。

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python生成器表达式和列表解析
Mar 10 Python
python使用turtle绘制分形树
Jun 22 Python
Python中的函数式编程:不可变的数据结构
Oct 08 Python
python3.4爬虫demo
Jan 22 Python
Django rstful登陆认证并检查session是否过期代码实例
Aug 13 Python
python定时任务 sched模块用法实例
Nov 04 Python
python 实现查询Neo4j多节点的多层关系
Dec 23 Python
Pytorch之Variable的用法
Dec 31 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
Mar 30 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 Python
python解包概念及实例
Feb 17 Python
Python基础学习之奇异的GUI对话框
May 27 Python
Python使用shelve模块实现简单数据存储的方法
May 20 #Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
May 20 #Python
python获取指定目录下所有文件名列表的方法
May 20 #Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
May 20 #Python
Python使用matplotlib绘制动画的方法
May 20 #Python
Python中subprocess模块用法实例详解
May 20 #Python
python检测某个变量是否有定义的方法
May 20 #Python
You might like
综合图片计数器
2006/10/09 PHP
用header 发送cookie的php代码
2007/03/16 PHP
深入PHP5中的魔术方法详解
2013/06/17 PHP
PHPer 需要了解的 5 个 Composer 小技巧
2014/08/18 PHP
destoon实现调用图文新闻的方法
2014/08/21 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
基于JQuery的简单实现折叠菜单代码
2010/09/15 Javascript
JS替换字符串中字符即替换全部而不是第一个
2014/06/04 Javascript
Jquery通过JSON字符串创建JSON对象
2014/08/24 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
2015/02/28 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
javascript解决IE6下hover问题的方法
2015/07/28 Javascript
jquery网页日历显示控件calendar3.1使用详解
2016/11/24 Javascript
Angular2自定义分页组件
2017/04/19 Javascript
jquery实现图片上传前本地预览
2017/04/28 jQuery
JavaScript正则表达式和级联效果
2017/09/14 Javascript
vue-router权限控制(简单方式)
2018/10/29 Javascript
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
通过代码实例展示Python中列表生成式的用法
2015/03/31 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
Python多版本开发环境管理工具介绍
2019/07/03 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
Django表单提交后实现获取相同name的不同value值
2020/05/14 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
英国高档时尚男装购物网站:MR PORTER
2016/08/09 全球购物
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
岗位廉洁从政承诺书
2014/03/27 职场文书
《骑牛比赛》教后反思
2014/04/22 职场文书
社区科普工作方案
2014/06/03 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
golang正则之命名分组方式
2021/04/25 Golang
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技