图文编辑:逻辑熊猫 图片来源:网络与截图 主要内容:面向初学者的清单软件
一个软件的关键在于,你想用它做什么!
关于写这个软件的目的:
一、演示
二、代码
已上传到Github : https://github.com/lizechen2018/easybill
可以使用git clone https://github.com/lizechen2018/easybill克隆到你的电脑上。
import easygui as w
w.msgbox('欢迎使用easybill',"easybill")
class Bill:
'''
A easy bill built in easygui
You can use this script:
addaffair
displayaffairs
removeaffair
finishaffair
'''
def __init__(self):
self.schedule_file = '待办事件'
self.achieve_file = '完成记录'
def getAll(self, file):
f = open(file)
lines = []
for each_line in f:
lines.append(each_line)
f.close()
return lines
def appendaffair(self):
"""添加待办事件"""
enterline = w.enterbox('请输入事件内容','easybill')
f = open(self.schedule_file , 'a')
if type(enterline) is str:
f.write(enterline)
f.write('\n')
f.close()
def displaySchedule(self):
"""Display the Schedule!"""
f = open('待办事件', 'r')
w.textbox('待办事件', 'Display', f)
f.close()
def removeAffair(self, file, affair):
f = open(file, 'r')
lines = []
for each_line in f:
lines.append(each_line)
f.close()
if affair in lines:
lines.remove(affair)
f = open(file, 'w')
for each in lines:
f.write(each)
f.close
else:
pass
def delSchedule(self):
f = open('待办事件', 'r')
lines = []
for each_line in f:
lines.append(each_line)
f.close()
if len(lines) > 0:
getDelSchedule = w.choicebox('选择要删除的事件','', lines)
lines.remove(getDelSchedule)
f = open('待办事件', 'w')
for each in lines:
f.write(each)
f.close()
w.msgbox("已经成功删除了 %s " % getDelSchedule)
else:
w.msgbox("没有待办事件!")
def finishSchedule(self):
"""Move the affair to the Record"""
f = open('待办事件')
lines = []
for each_line in f:
lines.append(each_line)
f.close()
getRecord = w.choicebox('选择已完成的事件','', lines)
self.removeAffair('待办事件',getRecord)
f = open('完成记录', 'a')
f.write(getRecord)
f.write('\n')
f.close()
def displayRecord(self):
'''Display the Record of the having finished'''
f = open('完成记录', 'r')
w.textbox('完成记录', 'Display', f)
f.close()
def delRecord(self):
f = open('完成记录')
lines = []
for each_line in f:
lines.append(each_line)
f.close()
if len(lines) > 0:
getRecord = w.choicebox('请选择要删除的记录\n删除之后会显示所有记录\n','删除记录', lines)
self.removeAffair('完成记录', getRecord)
self.displayRecord()
else:
w.msgbox("还没有记录,赶紧去完成事件吧。")
pass
def choiceFunction(self):
while True:
getfun = w.choicebox('要做什么呢?', 'easybill', ('添加事件', '查看事件', '删除事件',
'完成事件', '查看记录','删除记录', '退出'))
if getfun == '添加事件':
self.appendaffair()
elif getfun == '查看事件':
self.displaySchedule()
elif getfun == '完成事件':
self.finishSchedule()
elif getfun == '删除事件':
self.delSchedule()
elif getfun == '查看记录':
self.displayRecord()
elif getfun == '删除记录':
self.delRecord()
else:
exit(1)
start = Bill()
start.choiceFunction()
三、代码讲解
代码的原理非常简单,那就是获取字符串然后将字符串写到文件,对文件进行操作。
GUI方面,由于新手并不熟悉tkinter,为了快速开发,使用了easygui模块,该模块完全以tkinter为基础,提供了便捷的方法,支持快速开发出一个像样的GUI程序。
使用此代码需要在工作目录下准备两个文件,“待办事件”和“完成记录”。否则会报错。
提供6个基本功能
四、自我评价
优点:原理简单,适合初学者学习和使用。
缺点:部分bug未处理,未经优化,过于冗长
五、结尾
功能简介:领域包括了「面向 Python 基础,进阶和有趣应用」的一站式技术分享,挖掘学习者在学习当中遇到的各类问题并分享经验,关注实用技能和有趣新闻,感兴趣的推荐关注。
本文分享自 逻辑熊猫带你玩Python 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!