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中的__init__和__new__
Mar 12 Python
5款非常棒的Python工具
Jan 05 Python
python批量修改文件编码格式的方法
May 31 Python
python对列进行平移变换的方法(shift)
Jan 10 Python
浅谈python标准库--functools.partial
Mar 13 Python
Python实现串口通信(pyserial)过程解析
Sep 25 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
Nov 06 Python
根据tensor的名字获取变量的值方式
Jan 04 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
May 22 Python
python中常见错误及解决方法
Jun 21 Python
python 基于opencv实现图像增强
Dec 23 Python
浅谈Python协程asyncio
Jun 20 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生成二维码的几种方式整理及使用实例
2013/06/03 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
List all the Databases on a SQL Server
2007/06/21 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
2010/09/15 Javascript
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
JavaScript中字符串分割函数split用法实例
2015/04/07 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
js中flexible.js实现淘宝弹性布局方案
2020/06/23 Javascript
一道JS前端闭包面试题解析
2015/12/25 Javascript
jQuery基础知识点总结(必看)
2016/05/31 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
2016/09/01 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
JS原型对象操作实例分析
2020/06/06 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
Bootstrap FileInput实现图片上传功能
2021/01/28 Javascript
vue实现拖拽进度条
2021/03/01 Vue.js
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
[01:03:41]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第三场 2月2日
2021/03/11 DOTA
Python时区设置方法与pytz查询时区教程
2013/11/27 Python
如何在Python函数执行前后增加额外的行为
2016/10/20 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
HTML5 source标签:媒介元素定义媒介资源
2018/01/29 HTML / CSS
企业治理工作自我评价
2013/09/26 职场文书
施工安全协议书
2013/12/11 职场文书
《姥姥的剪纸》教学反思
2014/02/25 职场文书
十佳中学生事迹材料
2014/06/02 职场文书
感情真挚的毕业生求职信
2014/07/19 职场文书
会议开幕词
2015/01/28 职场文书
旷工检讨书大全
2015/08/15 职场文书
《将心比心》教学反思
2016/02/23 职场文书