我是靠谱客的博主 潇洒小白菜,最近开发中收集的这篇文章主要介绍Python:使用tkinter和shelve实现本地数据的简单存储、显示、查询、更新操作,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
#!/usr/bin/env python
# coding:UTF-8
"""
@version: python3.x
@author:曹新健
@contact: 617349013@qq.com
@software: PyCharm
@file: peoplegui.py
@time: 2018/9/29 20:56
"""
import shelve
from tkinter import *
from tkinter.messagebox import showerror
class Person():
def __init__(self,name,age,pay=100,job="无业游民"):
self.name = name
self.age = age
self.pay = pay
self.job = job
shelveFile = 'person-shelve'
fields = ('name','age','pay','job')
def makeWidget():
global entries
entries = {}
wd = Tk()
wd.title("People Shelve")
wd.iconbitmap('bank.ico') #程序目录下需要有bank.ico图片
fr = Frame(wd)
fr.pack()
for (id,field) in enumerate(('key',) + fields):
lb = Label(fr,text=field)
en = Entry(fr)
lb.grid(row=id,column=0)
en.grid(row=id,column=1)
entries[field] = en
Button(wd,text="查询",command=fetchRecord).pack(side=LEFT)
Button(wd, text="更新", command=updateRecord).pack(side=LEFT)
Button(wd, text="退出", command=wd.quit).pack(side=RIGHT)
return wd
def fetchRecord():
key = entries['key'].get()
try:
record = db[key]
except:
showerror(title="错误",message="输入的键值不存在")
else:
for field in fields:
entries[field].delete(0,END)
entries[field].insert(0,repr(getattr(record,field)))
def updateRecord():
key = entries['key'].get()
try:
record = db[key]
except:
#from person import Person
record = Person('?','?')
for field in fields:
setattr(record,field,eval(entries[field].get()))
db[key] = record
if __name__ == "__main__":
with shelve.open(shelveFile) as db:
window = makeWidget()
window.mainloop()
最后
以上就是潇洒小白菜为你收集整理的Python:使用tkinter和shelve实现本地数据的简单存储、显示、查询、更新操作的全部内容,希望文章能够帮你解决Python:使用tkinter和shelve实现本地数据的简单存储、显示、查询、更新操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复