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检测手机QQ在线状态的脚本代码
Feb 10 Python
python函数缺省值与引用学习笔记分享
Feb 10 Python
Python将xml和xsl转换为html的方法
Mar 10 Python
Python实现提取XML内容并保存到Excel中的方法
Sep 01 Python
Python 从列表中取值和取索引的方法
Dec 25 Python
使用python打印十行杨辉三角过程详解
Jul 10 Python
python如何从文件读取数据及解析
Sep 19 Python
python 解决print数组/矩阵无法完整输出的问题
Feb 19 Python
Numpy一维线性插值函数的用法
Apr 22 Python
简单了解Django项目应用创建过程
Jul 06 Python
python利用文件时间批量重命名照片和视频
Feb 09 Python
Pytorch中Softmax和LogSoftmax的使用详解
Jun 05 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
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
dedecms模板标签代码官方参考
2007/03/17 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
JavaScript 学习初步 入门教程
2010/03/25 Javascript
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
window.open关于浏览器拦截问题分析及解决方法
2013/02/05 Javascript
图片动画横条广告带上下滚动可自定义图片、链接等等
2013/10/20 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
EasyUI学习之Combobox下拉列表(1)
2016/12/29 Javascript
node跨域请求方法小结
2017/08/25 Javascript
JavaScript中创建原子的方法总结
2018/08/26 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
Vue中的nextTick作用和几个简单的使用场景
2021/01/25 Vue.js
python和bash统计CPU利用率的方法
2015/07/10 Python
Python计算已经过去多少个周末的方法
2015/07/25 Python
Python变量和数据类型详解
2017/02/15 Python
django 解决manage.py migrate无效的问题
2018/05/27 Python
Python提取特定时间段内数据的方法实例
2019/04/01 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
电大物流学生的自我评价
2013/10/25 职场文书
仓库理货员岗位职责
2013/12/18 职场文书
2014年度考核工作总结
2014/12/24 职场文书
个人委托函范文
2015/01/29 职场文书
父亲节寄语大全
2015/02/27 职场文书
2015年采购部工作总结
2015/04/23 职场文书
MySQL infobright的安装步骤
2021/04/07 MySQL
python 标准库原理与用法详解之os.path篇
2021/10/24 Python