我是靠谱客的博主 潇洒小白菜,最近开发中收集的这篇文章主要介绍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实现本地数据的简单存储、显示、查询、更新操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部