python简单程序编写-用python语言编写一个简单记事本

看了一点python的基础教程,忍不住手就痒了,找来一个题目练一下喽。

题目:编写一个功能简单的记事本。

编写记事本就要用到GUI的功能,最常用的当然是wxpython,那么我们就用这个来写一个记事本的程序吧。

首先来一些基本的功能调用,先熟悉一下它的基本构成:

import wx

app=wx.App()

win=wx.Frame(None)

win.Show()

app.MainLoop()

我们来分析一下这个程序的语句:

import wx是引入了wxpython模块,wx.App()生成了一个应用程序,wx.Frame(None)生成了一个窗口的框架,用win.Show()显示出来,最后对于程序不断循环。

这样就编写了一个比较简单的窗口程序了,不过这个窗口什么也没有,现在慢慢来将其内容充实起来吧。

先把这个空白的窗口加上一些标题(title)

import wx

app=wx.App()

win=wx.Frame(None,title="简单记事本")

win.Show()

app.MainLoop()

我们所需要的记事本编辑器肯定得有两个功能,第一能打开文件,第二能保存文件,那么至少需要这两个按钮,一个是打开,一个是保存,按钮的生成用wx.Button()实现。

按钮的位置大小等等的确定需要各种参数,那么怎么修改上面的程序呢?接着往下来:

import wx

app=wx.App()

win=wx.Frame(None,title="简单记事本"size=(410,335))

loadbutton=wx.Button(win,label="open",pos=(5,5),size=(80,25))

savebutton=wx.Button(win,label="save",pos=(90,5),size=(80,25))

win.Show()

app.MainLoop()

仅有按钮还是不行的,还得有打开目录的编辑区域和文本的编辑区域,就得用到wx.TextCtrl()这个函数来,继续修改以上程序:

import wx

app=wx.App()

win=wx.Frame(None,title="简单记事本",size=(410,335))

fileload=wx.TextCtrl(win,pos=(5,5),size=(230,25))

contents=wx.TextCtrl(win,pos=(5,35),size=(400,300))

loadbutton=wx.Button(win,label="open",pos=(240,5),size=(80,25))

savebutton=wx.Button(win,label="save",pos=(325,5),size=(80,25))

win.Show()

app.MainLoop()

一个简单的模型就出来了吧,哈哈。但是这个记事本在拖拉时其编辑内容却不能随拖拉的变化而变化,而是保持原来的形状完全不变,而且文件编辑区也不能随意多行处理,要想其变化,还得对其修改:

import wx

app=wx.App()

win=wx.Frame(None,title="简单记事本",size=(410,335))

bg=wx.Panel(win)

fileload=wx.TextCtrl(bg)

contents=wx.TextCtrl(bg,style=wx.TE_MULTILINE|wx.HSCROLL)

loadbutton=wx.Button(bg,label="open")

savebutton=wx.Button(bg,label="save")

level=wx.BoxSizer()

level.Add(fileload,proportion=1,flag=wx.EXPAND)

level.Add(loadbutton,proportion=0,flag=wx.LEFT,border=5)

level.Add(savebutton,proportion=0,flag=wx.LEFT,border=5)

down=wx.BoxSizer(wx.VERTICAL)

down.Add(level,proportion=0,flag=wx.EXPAND|wx.ALL,border=5)

down.Add(contents,proportion=1,flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.BOTTOM,border=5)

bg.SetSizer(down)

win.Show()

app.MainLoop()

用这个程序写出来的记事本基本上只是个框架而已,他没有打开与保存文件的功能,那么怎么才能实现打开与保存文件的功能呢?这里用到了wx.Bind()函数,所以前面的程序可以将其改写成

import wx

app=wx.App()

win=wx.Frame(None,title="简单记事本",size=(410,335))

bg=wx.Panel(win)

def load(event):

a=open(fileload.GetValue())

contents.SetValue(a.read())

a.close()

def save(event):

c=open(fileload.GetValue(),"w")

c.write(contents.GetValue())

c.close()

fileload=wx.TextCtrl(bg)

contents=wx.TextCtrl(bg,style=wx.TE_MULTILINE|wx.HSCROLL)

loadbutton=wx.Button(bg,label="open")

savebutton=wx.Button(bg,label="save")

loadbutton.Bind(wx.EVT_BUTTON,load)

savebutton.Bind(wx.EVT_BUTTON,save)

level=wx.BoxSizer()

level.Add(fileload,proportion=1,flag=wx.EXPAND)

level.Add(loadbutton,proportion=0,flag=wx.LEFT,border=5)

level.Add(savebutton,proportion=0,flag=wx.LEFT,border=5)

down=wx.BoxSizer(wx.VERTICAL)

down.Add(level,proportion=0,flag=wx.EXPAND|wx.ALL,border=5)

down.Add(contents,proportion=1,flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.BOTTOM,border=5)

bg.SetSizer(down)

win.Show()

app.MainLoop()

这个程序就可以完成了,当然你也可以在自定义函数load()中修改,使其变为:当没有此文件时创建一个,然后对其编辑。这里就不多说了,你可以自己实践啊,哈哈。

总结:通过这个简单记事本编辑器的编写,我们基本上掌握了一些简单的图形编辑功能,那么,很显然我们还可以编写一个简单计算器,当然你要是想要编写一个很复杂的科学计算器也不是不可能实现不了的。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值