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字符串特性及常用字符串方法的简单笔记
Jan 04 Python
Python编程实现数学运算求一元二次方程的实根算法示例
Apr 02 Python
python版本坑:md5例子(python2与python3中md5区别)
Jun 20 Python
详解 Python 读写XML文件的实例
Aug 02 Python
有关Python的22个编程技巧
Aug 29 Python
python numpy中cumsum的用法详解
Oct 17 Python
python自动化测试之异常及日志操作实例分析
Nov 09 Python
Python3并发写文件与Python对比
Nov 20 Python
python base64库给用户名或密码加密的流程
Jan 02 Python
基于python计算并显示日间、星期客流高峰
May 07 Python
python实现测试工具(一)——命令行发送get请求
Oct 19 Python
Python实现双向链表基本操作
May 25 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
thinkPHP中分页用法实例分析
2015/12/26 PHP
thinkphp框架下实现登录、注册、找回密码功能
2016/04/06 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
PHP用FTP类上传文件视频等的简单实现方法
2016/09/23 PHP
PHP使用ajax的post方式下载excel文件简单示例
2019/08/06 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
JS 遮照层实现代码
2010/03/31 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
2016/07/04 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
js实现3D图片环展示效果
2017/03/09 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
在nginx上部署vue项目(history模式)的方法
2017/12/28 Javascript
原生js实现点击轮播切换图片
2020/02/11 Javascript
[37:35]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第二局
2016/02/25 DOTA
[01:00:44]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第三局
2016/03/04 DOTA
[14:21]VICI vs EG (BO3)
2018/06/07 DOTA
用Python计算三角函数之atan()方法的使用
2015/05/15 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
python将字符串以utf-8格式保存在txt文件中的方法
2018/10/30 Python
python通过链接抓取网站详解
2019/11/20 Python
澳大利亚100%丝绸多彩度假装商店:TheSwankStore
2019/09/04 全球购物
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
2014/09/05 面试题
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
大学学年自我鉴定
2013/10/28 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
工程专业求职自荐书范文
2014/02/08 职场文书
秘书英文求职信
2014/04/16 职场文书
应届大专生求职信
2014/06/26 职场文书
抢劫罪辩护词
2015/05/21 职场文书
《给予树》教学反思
2016/03/03 职场文书
七个非常实用的Python工具包总结
2021/06/15 Python