Python中使用wxPython开发的一个简易笔记本程序实例


Posted in Python onFebruary 08, 2015

一、简介

wxPython是Python语言的一套优秀的GUI图形库,允许Python程序员很方便的创建完整的、功能键全的GUI用户界面。 wxPython是作为优秀的跨平台GUI库wxWidgets的Python封装和Python模块的方式提供给用户的。

二、安装

参考官方网站:http://www.wxpython.org/download.php

三、DEMO

本demo是一个简单的记事本软件,可以打开文件,修改并保存。

import wx

app = wx.App()
win = wx.Frame(
  None,
  title="simple editor",
  size=(410, 335))

bkg = wx.Panel(win)


def openFile(evt):
  dlg = wx.FileDialog(
    win,
    "Open",
    "",
    "",
    "All files (*.*)|*.*",
    wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
  filepath = ''
  if dlg.ShowModal() == wx.ID_OK:
    filepath = dlg.GetPath()
  else:
    return
  filename.SetValue(filepath)
  fopen = open(filepath)
  fcontent = fopen.read()
  contents.SetValue(fcontent)
  fopen.close()


def saveFile(evt):
  fcontent = contents.GetValue()
  fopen = open(filename.GetValue(), 'w')
  fopen.write(fcontent)
  fopen.close()

openBtn = wx.Button(bkg, label='open')
openBtn.Bind(wx.EVT_BUTTON, openFile)

saveBtn = wx.Button(bkg, label='save')
saveBtn.Bind(wx.EVT_BUTTON, saveFile)

filename = wx.TextCtrl(bkg, style=wx.TE_READONLY)
contents = wx.TextCtrl(bkg, style=wx.TE_MULTILINE)

hbox = wx.BoxSizer()
hbox.Add(openBtn, proportion=0, flag=wx.LEFT | wx.ALL, border=5)
hbox.Add(filename, proportion=1, flag=wx.EXPAND | wx.TOP | wx.BOTTOM, border=5)
hbox.Add(saveBtn, proportion=0, flag=wx.LEFT | wx.ALL, border=5)

bbox = wx.BoxSizer(wx.VERTICAL)
bbox.Add(hbox, proportion=0, flag=wx.EXPAND | wx.ALL)
bbox.Add(
  contents,
  proportion=1,
  flag=wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT,
  border=5)

bkg.SetSizer(bbox)
win.Show()
app.MainLoop()

运行效果:

Python中使用wxPython开发的一个简易笔记本程序实例

Python 相关文章推荐
Python ljust rjust center输出
Sep 06 Python
零基础写python爬虫之使用urllib2组件抓取网页内容
Nov 04 Python
使用Python的判断语句模拟三目运算
Apr 24 Python
Django的数据模型访问多对多键值的方法
Jul 21 Python
Python中的字典与成员运算符初步探究
Oct 13 Python
python爬虫入门教程--正则表达式完全指南(五)
May 25 Python
Python3处理HTTP请求的实例
May 10 Python
Python标准库使用OrderedDict类的实例讲解
Feb 14 Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 Python
Python实现朴素贝叶斯的学习与分类过程解析
Aug 24 Python
在django中自定义字段Field详解
Dec 03 Python
python django中8000端口被占用的解决
Dec 17 Python
Python常用的日期时间处理方法示例
Feb 08 #Python
Python中使用PIL库实现图片高斯模糊实例
Feb 08 #Python
Python中解析JSON并同时进行自定义编码处理实例
Feb 08 #Python
Python Web框架Flask中使用七牛云存储实例
Feb 08 #Python
Python Web框架Flask中使用百度云存储BCS实例
Feb 08 #Python
Python Web框架Flask中使用新浪SAE云存储实例
Feb 08 #Python
Python中装饰器的一个妙用
Feb 08 #Python
You might like
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
2016/03/17 PHP
php-fpm服务启动脚本的方法
2018/04/27 PHP
JavaScript 判断判断某个对象是Object还是一个Array
2010/01/28 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
nodejs后台集成ueditor富文本编辑器的实例
2017/07/11 NodeJs
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
详解React之key的使用和实践
2018/09/29 Javascript
微信小程序实现无限滚动列表
2020/05/29 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
layui表单提交到后台自动封装到实体类的方法
2019/09/12 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
python处理cookie详解
2014/02/07 Python
Python ORM框架SQLAlchemy学习笔记之数据查询实例
2014/06/10 Python
Python之PyUnit单元测试实例
2014/10/11 Python
介绍Python中的fabs()方法的使用
2015/05/14 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
Django后端分离 使用element-ui文件上传方式
2020/07/12 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
详解Python中的编码问题(encoding与decode、str与bytes)
2020/09/30 Python
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
html5使用Canvas绘图的使用方法
2017/11/21 HTML / CSS
OPPO手机官方商城:中国手机市场出货量第一品牌
2017/10/18 全球购物
怀旧香味蜡烛:Homesick
2019/11/02 全球购物
医学生个人求职信范文
2013/09/24 职场文书
初中班主任心得体会
2016/01/07 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
Python基础之hashlib模块详解
2021/05/06 Python
苹果发布了MagSafe固件更新,可以不外接电源实现最高7.5W充电
2022/04/21 数码科技
Java完整实现记事本代码
2022/06/16 Java/Android