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 文件重命名工具代码
Jul 26 Python
python进阶教程之函数参数的多种传递方法
Aug 30 Python
从Python程序中访问Java类的简单示例
Apr 20 Python
python实现隐马尔科夫模型HMM
Mar 25 Python
对python requests的content和text方法的区别详解
Oct 11 Python
Python WEB应用部署的实现方法
Jan 02 Python
python爬取内容存入Excel实例
Feb 20 Python
Python2 Selenium元素定位的实现(8种)
Feb 25 Python
pytorch 共享参数的示例
Aug 17 Python
2021年值得向Python开发者推荐的VS Code扩展插件
Jan 25 Python
python绘图subplots函数使用模板的示例代码
Apr 30 Python
Python机器学习之PCA降维算法详解
May 19 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 str_pad 函数使用详解
2009/01/13 PHP
ThinkPHP开发框架函数详解:C方法
2015/08/14 PHP
php 问卷调查结果统计
2015/10/08 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
PDO::query讲解
2019/01/29 PHP
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
javascript内存管理详细解析
2013/11/11 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
2016/05/24 Javascript
Bootstrap实现翻页效果
2017/11/27 Javascript
Vue中使用canvas方法总结
2019/02/12 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
Python模拟脉冲星伪信号频率实例代码
2018/01/03 Python
Numpy中转置transpose、T和swapaxes的实例讲解
2018/04/17 Python
pandas多级分组实现排序的方法
2018/04/20 Python
python实现梯度下降算法
2020/03/24 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
在python中使用xlrd获取合并单元格的方法
2018/12/26 Python
python多线程扫描端口(线程池)
2019/09/04 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
python:HDF和CSV存储优劣对比分析
2020/06/08 Python
使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例
2016/03/22 HTML / CSS
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
室内设计自我鉴定
2013/10/15 职场文书
财务经理岗位职责
2013/11/09 职场文书
人力资源总监工作说明
2014/03/03 职场文书
公益广告语集锦
2014/03/13 职场文书
民族团结先进个人事迹材料
2014/06/02 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书
python 中yaml文件用法大全
2021/07/04 Python
python数字图像处理数据类型及颜色空间转换
2022/06/28 Python