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实现dnspod自动更新dns解析的方法
Feb 14 Python
python使用smtplib模块通过gmail实现邮件发送的方法
May 08 Python
在Python中操作列表之List.append()方法的使用
May 20 Python
python编写弹球游戏的实现代码
Mar 12 Python
pyQt5实时刷新界面的示例
Jun 25 Python
python 函数的缺省参数使用注意事项分析
Sep 17 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
Jul 05 Python
树莓派4B安装Tensorflow的方法步骤
Jul 16 Python
python 发送get请求接口详解
Nov 17 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
Feb 05 Python
python源文件的字符编码知识点详解
Mar 04 Python
python scrapy简单模拟登录的代码分析
Jul 21 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
浅谈电磁辐射对健康的影响
2021/03/01 无线电
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
php 修改、增加xml结点属性的实现代码
2013/10/22 PHP
php读取mysql的简单实例
2014/01/15 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
laravel5.6实现数值转换
2019/10/23 PHP
Jquery ajaxsubmit上传图片实现代码
2010/11/04 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
整理Javascript基础语法学习笔记
2015/11/29 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
js实现HashTable(哈希表)的实例分析
2016/11/21 Javascript
探讨跨域请求资源的几种方式(总结)
2016/12/02 Javascript
代码详解javascript模块加载器
2018/03/04 Javascript
JavaScript ES 模块的使用
2020/11/12 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
用python 制作图片转pdf工具
2015/01/30 Python
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
python数据类型_字符串常用操作(详解)
2017/05/30 Python
对pytorch的函数中的group参数的作用介绍
2020/02/18 Python
python字典key不能是可以是啥类型
2020/08/04 Python
纯CSS3实现扇形动画菜单(简化版)实例源码
2017/01/17 HTML / CSS
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
编辑个人求职信范文
2013/09/21 职场文书
成教自我鉴定
2013/10/27 职场文书
住房公积金接收函
2014/01/09 职场文书
项目施工员岗位职责
2014/03/09 职场文书
工程材料采购方案
2014/05/18 职场文书
办公室班子四风问题对照检查材料
2014/10/04 职场文书
晋江市人民政府党组群众路线教育实践活动整改方案
2014/10/25 职场文书
青岛导游词
2015/02/12 职场文书
演讲稿之我的初心我的成长
2019/08/12 职场文书
Django使用redis配置缓存的方法
2021/06/01 Redis
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python
Python自动化实战之接口请求的实现
2022/05/30 Python