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实现连接mongodb的方法
May 08 Python
Python操作Excel之xlsx文件
Mar 24 Python
单利模式及python实现方式详解
Mar 20 Python
python实现人民币大写转换
Jun 20 Python
初探利用Python进行图文识别(OCR)
Feb 26 Python
Pyqt5 基本界面组件之inputDialog的使用
Jun 25 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
Dec 10 Python
Python openpyxl模块原理及用法解析
Jan 19 Python
使用TensorFlow对图像进行随机旋转的实现示例
Jan 20 Python
Python @property及getter setter原理详解
Mar 31 Python
pycharm下pyqt4安装及环境配置的教程
Apr 24 Python
使用python-cv2实现视频的分解与合成的示例代码
Oct 26 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中mysql与mysqli的区别分析
2013/06/10 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
2013/06/21 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
jquery实现点击消失的代码
2014/03/03 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
Extjs根据条件设置表格某行背景色示例
2014/07/23 Javascript
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
2014/10/11 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
node.js中EJS 模板快速入门教程
2017/05/08 Javascript
深入理解vue Render函数
2017/07/19 Javascript
js 毫秒转天时分秒的实例
2017/11/17 Javascript
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
JavaScript实现连连看连线算法
2019/01/05 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
网易2016研发工程师编程题 奖学金(python)
2019/06/19 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
python用opencv 图像傅里叶变换
2021/01/04 Python
css3 线性渐变和径向渐变示例附图
2014/04/08 HTML / CSS
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
英格兰足协官方商店:England Store
2019/07/12 全球购物
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
会计职业生涯规划范文
2014/01/04 职场文书
大学应届生的自我评价
2014/03/06 职场文书
成龙洗发水广告词
2014/03/14 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书
社区节水倡议书
2015/04/29 职场文书
污水处理保证书
2015/05/09 职场文书
《学会生存》读后感3篇
2019/12/09 职场文书