- 浏览: 111823 次
- 性别:
- 来自: 南昌
最新评论
前几天无聊,在网上看别人写了一个wxpython例子
,写了一个东西非常的好玩,感觉python开发软件也不错,开发效率比较高,于是自己也学了点wxpython的前面一点内容,自己写了个例子玩玩:
import os
import sys
import wx
ID_OPEN = 101
ID_EXIT = 110
ID_SAVE = 111
ID_BUTTON = 112
class MainWindow(wx.Frame):
""" We simply derive a new class of Frame. """
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, size=(500,100))
self.control = wx.TextCtrl(self, 1, style=wx.TE_MULTILINE)
self.CreateStatusBar()
filemenu = wx.Menu()
filemenu.Append(ID_OPEN,"打开文件","open file")
filemenu.AppendSeparator()
filemenu.Append(ID_SAVE,"保存文件"," save file")
filemenu.AppendSeparator()
filemenu.Append(ID_EXIT,"退出","exit")
menuBar = wx.MenuBar()
menuBar.Append(filemenu,"文件")
self.SetMenuBar(menuBar)
wx.EVT_MENU(self,ID_OPEN,self.open)
wx.EVT_MENU(self,ID_EXIT,self.exit)
wx.EVT_MENU(self,ID_SAVE,self.save)
self.sizer2 = wx.BoxSizer(wx.HORIZONTAL)
self.buttons = []
# for i in range(0,6):
# self.buttons.append(wx.Button(self,ID_BUTTON+i,"Button &"+'i'))
# self.sizer2.Add(self.buttons[i],1,wx.EXPAND)
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.sizer.Add(self.control,1,wx.EXPAND)
self.sizer.Add(self.sizer2,0,wx.EXPAND)
self.SetSizer(self.sizer)
self.SetAutoLayout(1)
self.sizer.Fit(self)
self.Show(True)
def exit(self,e):
'''用户退出窗口'''
self.Close(True)
def open(self,e):
'''打开文件 '''
self.dirname = ''
dlg = wx.FileDialog(self,"chose a file",self.dirname,"","*.*",wx.OPEN)
if dlg.ShowModal() == wx.ID_OK:
self.filename = dlg.GetFilename()
self.dirname = dlg.GetDirectory()
f = open(os.path.join(self.dirname,self.filename),'r')
self.control.SetValue(f.read())
f.close()
dlg.Destroy()
def save(self,e):
'''保存文件'''
try:
f = open(os.path.join(self.dirname,self.filename),'w')
except AttributeError:
print '文件不存在'
sys.exit(0)
content = self.control.GetValue()
try:
f.write(content)
except UnboundLocalError:
print '文件不存在'
sys.exit(0)
finally:
f.close()
app = wx.PySimpleApp()
frame=MainWindow(None,-1, 'Small editor')
app.MainLoop()
直接运行就可以生成一个窗口,有打开和关闭的功能,其他的功能没有完善,有兴趣的朋友可以学习下,然后到老王python
里和大家一起分享你的成果吧!
发表评论
-
python classmethod类方法
2013-06-04 21:23 782python classmethod类方法的要点主要有3个: ... -
分享python ASCII返回对应的值(chr)
2013-06-04 21:17 782比如我们知道大写的A的ASCII码为 65,小写a的ASCI ... -
分享python 判断对象是否可以调用(callable)
2013-06-04 21:12 699我们需要判断python中的对象是否可以调用,可以用内置方法 ... -
python unittest单元测试方法和用例
2013-06-04 21:08 1064python内部自带了一个单元测试的模块,pyUnit也就是 ... -
python 字典(dict)get方法应用
2013-06-03 22:14 804如果我们需要获取字典值的话,我们有两种方法,一个是通过dic ... -
python 正则表达式re findall
2013-06-03 22:13 965python 正则表达式 re findall 方法能够以列 ... -
python中文分词
2013-06-03 22:13 1004python做SEO相关事情,我 ... -
python yield和generators(生成器)
2013-06-03 22:12 736在python中,yield就是这样的一个生成器。 yie ... -
fabric 批量执行服务器任务和自动化运维管理
2013-06-03 22:12 854上节我们已经把fabric给 ... -
分享fabric的安装和配置
2013-05-23 20:04 900fabric的安装可以选择用python的pip安装或者eas ... -
分享python 私有属性和方法
2013-05-23 20:04 702python默认的成员函数和 ... -
python 怎么自定义异常
2013-05-23 20:03 843如果你需要自定义异常 ... -
分享python 字符串(string) format介绍和代码
2013-05-23 20:02 757你可以用字符串的format方法来格式化输出字符串。 比如; ... -
python 包的定义,结构,导入过程
2013-05-23 20:01 669假设你想设计一个模块集(也就是一个“python 包” ... -
分享python del语句的知识点
2013-05-15 20:27 750python del方法从列表中删除某个项目索引,这个和列表 ... -
python filter, map, 和reduce
2013-05-15 20:26 670filter(function, sequence):对se ... -
python pass (空操作)语句
2013-05-15 20:25 908pass语句通常什么都不做。它可以表示语句,但这个程序不需要 ... -
python break和continue语句
2013-05-15 20:25 764break语句,就像在C语言中,打破了最小封闭for或whi ... -
分享python range方法
2013-05-11 22:42 812如果你需要遍历一个数字序列,内置函数range()就派上用场 ... -
分享下python 字符串特点
2013-05-11 22:42 717除了数值,Python可以操作字符串,它可以表现在以下几个方 ...
相关推荐
onnxruntime-1.16.0-cp311-cp311-win_amd64.whl
基于springboot的流浪猫狗救助系统源码数据库文档.zip
摘 要 如今的信息时代,对信息的共享性,信息的流通性有着较高要求,因此传统管理方式就不适合。为了让美容院信息的管理模式进行升级,也为了更好的维护美容院信息,美容院管理系统的开发运用就显得很有必要。并且通过开发美容院管理系统,不仅可以让所学的SpringBoot框架得到实际运用,也可以掌握MySQL的使用方法,对自身编程能力也有一个检验和提升的过程。尤其是通过实践,可以对系统的开发流程加深印象,无论是前期的分析与设计,还是后期的编码测试等环节,都可以有一个深刻的了解。 美容院管理系统根据调研,确定其实现的功能主要包括美容用品管理,美容项目管理,美容部位管理,销量信息管理,订单管理,美容项目预约信息管理等功能。 借助于美容院管理系统这样的工具,让信息系统化,流程化,规范化是最终的发展结果,让其遵循实际操作流程的情况下,对美容院信息实施规范化处理,让美容院信息通过电子的方式进行保存,无论是管理人员检索美容院信息,维护美容院信息都可以便利化操作,真正缩短信息处理时间,节省人力和信息管理的成本。 关键字:美容院管理系统,SpringBoot框架,MySQL
numpy-1.21.1-cp39-cp39-linux_armv7l.whl
基于JavaWeb+springboot的宠物救助及领养平台源码数据库文档.zip
基于springboot员工在线餐饮管理系统源码数据库文档.zip
matplotlib-3.5.3-cp37-cp37m-linux_armv7l.whl
基于springboot+web的留守儿童网站源码数据库文档.zip
STM32神舟III号例程源码SysTick系统滴答(神舟III号-库函数版)提取方式是百度网盘分享地址
STM32开发相关软件ISP 程序下载STM32开发相关软件ISP 程序下载提取方式是百度网盘分享地址
onnxruntime-1.17.0-cp310-cp310-win_amd64.whl
Pillow-9.5.0-cp39-cp39-linux_armv7l.whl
基于springboot高性能计算中心的高性能集群共享平台源码数据库文档.zip
SciPy-1.11.1-cp311-cp311-linux_armv7l.whl
主机硬件信息邮件及微信推送
numpy-1.23.4-cp39-cp39-linux_armv7l.whl
基于springboot视频点播系统源码数据库文档.zip
基于springboot竞赛管理系统源码数据库文档.zip
环境说明: 开发语言:python Python版本:3.6.8 数据库:mysql 5.7数据库工具:Navicat11开发软件:pycharm
opencv_python-4.6.0.66-cp37-cp37m-linux_armv7l.whl