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在校内发人人网状态(人人网看状态)
Feb 19 Python
Python简单遍历字典及删除元素的方法
Sep 18 Python
python入门基础之用户输入与模块初认识
Nov 14 Python
Python3中类、模块、错误与异常、文件的简易教程
Nov 20 Python
pandas数据分组和聚合操作方法
Apr 11 Python
python 3.6.5 安装配置方法图文教程
Sep 18 Python
利用ctypes获取numpy数组的指针方法
Feb 12 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
Mar 05 Python
python使用 zip 同时迭代多个序列示例
Jul 06 Python
Python 绘制酷炫的三维图步骤详解
Jul 12 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
Feb 28 Python
解决pytorch-gpu 安装失败的记录
May 24 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
WINXP下apache+php4+mysql
2006/11/25 PHP
ThinkPHP3.1的Widget新用法
2014/06/19 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
PHP7 参数处理机制修改
2021/03/09 PHP
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
js实现select跳转功能代码
2014/10/22 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
node.js 中国天气预报 简单实现
2016/06/06 Javascript
JavaScript中windows.open()、windows.close()方法详解
2016/07/28 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
2017/12/18 Javascript
基于Vue的延迟加载插件vue-view-lazy
2018/05/21 Javascript
layer.open关闭父窗口 以及调用父页面的方法
2018/08/17 Javascript
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
python实现NB-IoT模块远程控制
2018/06/20 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
2019/07/10 Python
css3利用transform变形结合事件完成扇形导航
2020/10/26 HTML / CSS
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
若干个Java基础面试题
2015/05/19 面试题
毕业生个人的自我评价优秀范文
2013/10/03 职场文书
大二自我鉴定
2014/01/31 职场文书
大学生实习证明范本
2014/09/19 职场文书
党员学习新党章思想汇报
2014/10/25 职场文书
安全员岗位职责
2015/02/10 职场文书
2015年社区矫正工作总结
2015/04/21 职场文书
2019企业给员工的慰问信
2019/06/24 职场文书
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
python图像处理 PIL Image操作实例
2022/04/09 Python