python编辑文档,python写一个文本编辑器
用Python的wx模块创建文本编辑器的方法:
1、设置按钮的位置
importwx
app=wx .应用程序()
win=wx .框架(无,标题=编辑器,size=(410,335))
赢了。显示()
loadButton=wx按钮(win,label=打开,pos=(225,5),size=(80,25))
保存按钮=wx .按钮(win,label=保存,pos=(315,5),size=(80,25))
文件名=wx .TextCtrl(win,pos=(5,5),size=(210,25))
内容=wx .TextCtrl(win,pos=(5,35),size=(390,260),style=wx .TE_MULTILINEwx .HSCROLL)
应用程序.主循环()2,对窗口内容进行布局
importwx
app=wx .应用程序()
win=wx .框架(无,标题=编辑器,size=(410,335))
bkg=wx .面板(赢)
loadButton=wx按钮(bkg,label=打开)
保存按钮=wx .按钮(bkg,label=保存)
文件名=wx .文本控制(bkg)
内容=wx .TextCtrl(bkg,style=wx .TE_MULTILINEwx .HSCROLL)
hbox=wx .盒子尺寸确定器()
hbox .添加(文件名,比例=1,标志=wx .展开)
hbox .Add(loadButton,proportion=0,flag=wx .左边框=5)
hbox .添加(保存按钮,比例=0,标志=wx .左边框=5)
vbox=wx .箱式筛分机(wx .垂直)
vbox .添加(hbox,比例=0,标志=wx .展开wx .ALL,border=5)
vbox .添加(内容,比例=1,标志=wx .展开wx .左wx .底部wx .右边框=5)
bkg .设置尺寸(vbox)
赢了。显示()
应用程序.主循环()3,添加事件处理函数
在图像使用者界面术语中,用户执行的动作(比如点击按钮)叫做事件。我们需要让程序注意这些事件并且作出反应。
假设写了一个负责打开文件的函数,并将其命令为负载,然后就可以像下面这样将函数作为加载按钮的事件处理函数:
加载按钮。绑定(wx .EVT _按钮,加载)
让我们来完成剩下的工作,现在需要的就是两个事件处理函数:加载(打开)和保存(保存)。当事件被调用时,它会收到一个事件对象作为它唯一的参数,其中包括发生了什么事情的信息,但是在这里可以忽略这方法的事情,因为程序只关心点击时发生的事情。
卸载(事件):
文件=打开(文件名GetValue())
内容SetValue(file.read())
file.close()
文件名使用文件名对象重载方法获取。为了将文本引入文本区,只要使用内容。设定值即可。
救援函数和负荷类似,除了它需要写入( w ),以及用于文件处理部分的写方法,GetValue用于从文本区获得信息。
defsave(事件):
文件=打开(文件名GetValue(), w )
文件.写入(内容GetValue())
file.close()完整代码如下:
importwx
卸载(事件):
文件=打开(文件名GetValue())
内容SetValue(file.read())
file.close()
defsave(事件):
文件=打开(文件名GetValue(), w )
文件.写入(内容GetValue())
file.close()
app=wx .应用程序()
win=wx .框架(无,标题=编辑器,size=(410,335))
bkg=wx .面板(赢)
loadButton=wx按钮(bkg,label=打开)
加载按钮。绑定(wx .EVT _按钮,加载)
保存按钮=wx .按钮(bkg,label=保存)
保存按钮。绑定(wx .EVT _按钮,保存)
文件名=wx .文本控制(bkg)
内容=wx .TextCtrl(bkg,style=wx .TE_MULTILINEwx .HSCROLL)
hbox=wx .盒子尺寸确定器()
hbox .添加(文件名,比例=1,标志=wx .展开)
hbox .Add(loadButton,proportion=0,flag=wx .左边框=5)
hbox .添加(保存按钮,比例=0,标志=wx .左边框=5)
vbox=wx .箱式筛分机(wx .垂直)
vbox .添加(hbox,比例=0,标志=wx .展开wx .ALL,border=5)
vbox .添加(内容,比例=1,标志=wx .展开wx .左wx .底部wx .右边框=5)
bkg .设置尺寸(vbox)
赢了。显示()
应用程序.主循环()执行结果如下:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。