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实现代码
Oct 10 Python
Python验证文件是否可读写代码分享
Dec 11 Python
python OpenCV学习笔记实现二维直方图
Feb 08 Python
python 爬虫 批量获取代理ip的实例代码
May 22 Python
解析python实现Lasso回归
Sep 11 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
Jan 13 Python
pyinstaller打包找不到文件的问题解决
Apr 15 Python
python ETL工具 pyetl
Jun 07 Python
Python字符串格式化常用手段及注意事项
Jun 17 Python
Python实现FTP文件定时自动下载的步骤
Dec 19 Python
教你如何使用Python Tkinter库制作记事本
Jun 10 Python
关于python类SortedList详解
Sep 04 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
用PHP将数据导入到Foxmail
2006/10/09 PHP
php正则表达式学习笔记
2015/11/13 PHP
php版银联支付接口开发简明教程
2016/10/14 PHP
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
简单的代码实现jquery定时器
2013/11/17 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
js获取日期:昨天今天和明天、后天
2014/06/11 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
推荐10 款 SVG 动画的 JavaScript 库
2015/03/24 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
2017/02/13 Javascript
jquery实现页面加载效果
2017/02/21 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
微信小程序滚动Tab实现左右可滑动切换
2017/08/17 Javascript
vue+node实现图片上传及预览的示例方法
2018/11/22 Javascript
Vue实现返回顶部按钮实例代码
2020/10/21 Javascript
跟老齐学Python之dict()的操作方法
2014/09/24 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
2018/07/04 Python
python游戏开发之视频转彩色字符动画
2019/04/26 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
Tensorflow加载Vgg预训练模型操作
2020/05/26 Python
jupyter使用自动补全和切换默认浏览器的方法
2020/11/18 Python
使用css3制作动感导航条示例
2014/01/26 HTML / CSS
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
html5 canvas实现给图片添加平铺水印
2019/08/20 HTML / CSS
党员评议个人总结
2014/10/20 职场文书
简历自我评价优缺点
2015/03/11 职场文书
2015年店长工作总结范文
2015/04/08 职场文书
公司车辆管理制度
2015/08/04 职场文书
小学三年级作文之写景
2019/11/05 职场文书
frg-100简单操作(设置)说明
2022/04/05 无线电
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android