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中的exec、eval使用实例
Sep 23 Python
python中黄金分割法实现方法
May 06 Python
python获取当前时间对应unix时间戳的方法
May 15 Python
利用Opencv中Houghline方法实现直线检测
Feb 11 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 Python
kafka-python 获取topic lag值方式
Dec 23 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
Mar 12 Python
解决IDEA 的 plugins 搜不到任何的插件问题
May 04 Python
Python gevent协程切换实现详解
Sep 14 Python
Python安装并操作redis实现流程详解
Oct 13 Python
Python3中对json格式数据的分析处理
Jan 28 Python
python基础入门之字典和集合
Jun 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 变量未定义等错误的解决方法
2011/01/12 PHP
解析用PHP实现var_export的详细介绍
2013/06/20 PHP
jQuery Mobile + PHP实现文件上传
2014/12/12 PHP
PHP Cookei记录用户历史浏览信息的代码
2016/02/03 PHP
PHP中Cookie的使用详解(简单易懂)
2017/04/28 PHP
Laravel实现表单提交
2017/05/07 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
JavaScript中的undefined学习总结
2013/11/30 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
2013/12/27 Javascript
jQuery 文本框得失焦点的简单实例
2014/02/19 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
2014/04/12 Javascript
Android中的jQuery:AQuery简介
2014/05/06 Javascript
jQuery Ajax调用WCF服务详细教程
2015/03/31 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
2018/01/16 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
react 兄弟组件如何调用对方的方法示例
2018/10/23 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
解读Python编程中的命名空间与作用域
2015/10/16 Python
Python元字符的用法实例解析
2018/01/17 Python
Python编程实现从字典中提取子集的方法分析
2018/02/09 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
详解python中各种文件打开模式
2020/01/19 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
Python 实现一个简单的web服务器
2021/01/03 Python
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
会计电算化应届生求职信
2013/11/03 职场文书
工作求职信
2014/07/04 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
dubbo服务整合zipkin详解
2021/07/26 Java/Android
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL