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对数据库操作
Mar 28 Python
Python与Java间Socket通信实例代码
Mar 06 Python
使用python遍历指定城市的一周气温
Mar 31 Python
python操作列表的函数使用代码详解
Dec 28 Python
python多行字符串拼接使用小括号的方法
Mar 19 Python
详解python如何在django中为用户模型添加自定义权限
Oct 15 Python
Django Channels 实现点对点实时聊天和消息推送功能
Jul 17 Python
Windows系统Python直接调用C++ DLL的方法
Aug 01 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
Aug 05 Python
Python使用matplotlib绘制圆形代码实例
May 27 Python
Selenium webdriver添加cookie实现过程详解
Aug 12 Python
python实现学生信息管理系统源码
Feb 22 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学习资料汇总与网址
2007/03/16 PHP
PHP安全下载文件的方法
2016/04/07 PHP
PHP-FPM 的管理和配置详解
2019/02/17 PHP
php中的buffer缓冲区用法分析
2019/05/31 PHP
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
js调试工具Console命令详解
2014/10/21 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
2015/12/04 Javascript
JavaScript对Json的增删改属性详解
2016/06/02 Javascript
JScript实现地址选择功能
2017/08/15 Javascript
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
2019/04/09 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
2019/07/10 Javascript
vue实现鼠标经过动画
2019/10/16 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
基于javascript实现放大镜特效
2020/12/03 Javascript
[36:13]Mineski vs iG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[40:53]完美世界DOTA2联赛PWL S3 Magma vs DLG 第二场 12.18
2020/12/20 DOTA
Python使用turtule画五角星的方法
2015/07/09 Python
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
python3 mmh3安装及使用方法
2019/10/09 Python
利用Python计算KS的实例详解
2020/03/03 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
css3 flex布局 justify-content:space-between 最后一行左对齐
2020/01/02 HTML / CSS
教师实习自我鉴定
2013/12/11 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
2014小学数学教师个人工作总结
2014/12/18 职场文书
七一慰问简报
2015/07/20 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书
php字符串倒叙
2021/04/01 PHP
用Python实现一个打字速度测试工具来测试你的手速
2021/05/28 Python
python字典进行运算原理及实例分享
2021/08/02 Python
php去除数组中为0的元素的实例分析
2021/11/17 PHP