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备份文件的脚本
Aug 11 Python
python3.5实现socket通讯示例(TCP)
Feb 07 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
Sep 20 Python
Python tornado队列示例-一个并发web爬虫代码分享
Jan 09 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
May 27 Python
基于python-opencv3的图像显示和保存操作
Jun 27 Python
Python识别html主要文本框过程解析
Feb 18 Python
基于python实现判断字符串是否数字算法
Jul 10 Python
sklearn中的交叉验证的实现(Cross-Validation)
Feb 22 Python
一篇文章弄懂Python中的内建函数
Aug 07 Python
Pygame如何使用精灵和碰撞检测
Nov 17 Python
Python内置的数据类型及使用方法
Apr 13 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
《PHP边学边教》(01.开篇――准备工作)
2006/12/13 PHP
PHP中PDO基础教程 入门级
2011/09/04 PHP
基于PHP CURL获取邮箱地址的详解
2013/06/03 PHP
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
php使用json-schema模块实现json校验示例
2019/09/28 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
总结一些js自定义的函数
2006/08/05 Javascript
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
2007/10/01 Javascript
javascript中onmouse事件在div中失效问题的解决方法
2012/01/09 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
2012/12/12 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
解析使用JS 清空File控件的路径值
2013/07/08 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
使用coffeescript编写node.js项目的方法汇总
2015/08/05 Javascript
js实现上传图片预览方法
2016/10/25 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
vue移动UI框架滑动加载数据的方法
2018/03/12 Javascript
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
Python的subprocess模块总结
2014/11/07 Python
Python实现SMTP发送邮件详细教程
2021/03/02 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
Python中对数组集进行按行打乱shuffle的方法
2018/11/08 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
Python远程开发环境部署与调试过程图解
2019/12/09 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
销售类个人求职信范文
2013/09/25 职场文书
大学四年学习的自我评价分享
2013/12/09 职场文书
个人工作主要事迹
2014/05/08 职场文书
在校生证明
2015/06/17 职场文书
人事任命书范本
2015/09/21 职场文书
Django中的JWT身份验证的实现
2021/05/07 Python