前言:
一.摘要
本代码主要为图书管理系统的‘增’、‘删’、‘改’、‘查’
二.题目
(1)图书添加:允许用户输入图书的名称和位置 (2)图书删除 (3)图书位置修改:允许用户更改已存在图书的存放位置。 (4)图书信息查看 (5)退出系统:结束程序循环
代码分析:
1.设置窗口
import tkinter as tk #导包
#1.设置窗口
win=tk.Tk() #实例化窗口
win.title('图书管理系统') #设置窗口标题
win.geometry('400x540') #设置窗口大小
2.设置大标签标题
Lt1=tk.Label(win,text='欢迎来到图书管理系统\n------------------------------------------',font=('Arial',13))
Lt1.pack() #布局管理器
3.设置书的信息标签
Lt2=tk.Label(win,text='place:') #设置书的位置标签
Lt2.place(x=10,y=120) #设置标签的位置
t2=tk.Entry(win,width=13) #设置标签后的输入框
t2.place(x=50,y=120) #设置输入框的位置
Lt3=tk.Label(win,text='name:') #设置书的名字标签
Lt3.place(x=200,y=120) #设置标签的位置
t3=tk.Entry(win,width=15) #设置标签后的输入框
t3.place(x=245,y=120) #设置输入框的位置
4.创建列表框
place=[] #分别创建两个空列表
name=[]
book={} #定义一个字典把name和value分别看成key和value
var=tk.StringVar() #创建字符串变量存储器
lb=tk.Listbox(win,width=30,height=6,selectmode='multiple') # 创建列表框
lb.place(x=80,y=180) #设置列表框位置
5.定义函数
(1)定义添加图书函数
def add_book(): #定义添加图书函数
place_value=t2.get() #获取输入框中输入的值
name_key=t3.get()
if var.get()=='A': #判断是否是添加图书按钮
place.append(place_value) #把获取到的值添加到建好的空列表中
name.append(name_key)
book[name_key]=place_value #字典赋值
lb.insert('end',name_key) #向列表框中插入数据
t2.delete(0,'end') #删除输入框中输入的
t3.delete(0,'end')
(2)定义删除图书函数
def del_book(): #定义删除图书函数
if var.get()=='B': #判断是否是删除图书按钮
lb.delete(lb.curselection()) #删除光标选中的
(3)定义修改图书函数
def modify_book(): #定义修改图书函数
if var.get()=='C': #判断是否是修改图书位置按钮
select=lb.curselection() #定义一个变量
new_place=t2.get() #获取输入框输入的
index=select[0] #select[0]:相当于表示在列表中取出一个值
place[index]=new_place #赋新的值
t2.delete(0,'end') #删除输入框中的数据
place[index]=new_place
var1.set(f'更改后的位置编码为:{new_place}') #输出
(4)定义选择查看图书函数
def select_book(): #定义选择查看图书函数
if var.get()=='D': #判断是否是产看图书按钮
value=lb.get(lb.curselection()) #获取光标选中的值的
var1.set(f'书名:{value}\n书的位置编码:{book[value]}') #输出
(5)定义退出系统的函数
def return_book(): #定义退出系统的函数
if var.get()=='E': #判断是否是退出系统的按钮
win.quit() #关闭界面
6.设置单选按钮并调用函数
r1=tk.Radiobutton(win,text='添加图书',variable=var,value='A',command=add_book)
r1.place(x=40,y=50)
r2=tk.Radiobutton(win,text='删除图书',variable=var,value='B',command=del_book)
r2.place(x=150,y=50)
r3=tk.Radiobutton(win,text='图书信息修改',variable=var,value='C',command=modify_book)
r3.place(x=260,y=50)
r5=tk.Radiobutton(win,text='图书信息查看',variable=var,value='D',command=select_book)
r5.place(x=40,y=90)
r6=tk.Radiobutton(win,text='退出系统',variable=var,value='E',command=return_book)
r6.place(x=150,y=90)
7.设置文本显示框
Lt4=tk.Label(win,text='图书目录 :') #设置标签
Lt4.place(x=40,y=155) #设置标签的位置
var1=tk.StringVar() #定义一个变量
Lt5=tk.Label(win,textvariable=var1,width=30,height=9) #设置一个文本可以改变的空标签
Lt5.place(x=80,y=347) #设置它的位置
Lt6=tk.Label(win,text='图书信息显示台 :') #给刚设置好的空标签设置一个标签(名)
Lt6.place(x=40,y=320) #设置位置
8.设置总按钮
btn=tk.Button(win,command=lambda :{'A':add_book,'B':del_book,'C':modify_book,'D':select_book,'E':return_book})
btn.place(x=600,y=500)
#通过使用commend,分别指向不同的匿名函数(一行表达式),来区分每个按钮
9.执行程序
win.mainloop()
全部代码:
import tkinter as tk
#1.设置窗口
win=tk.Tk()
win.title('图书管理系统')
win.geometry('400x540')
#2.设置大标签标题
Lt1=tk.Label(win,text='欢迎来到图书管理系统\n------------------------------------------',font=('Arial',13))
Lt1.pack() #布局管理器
#2.设置书的信息标签
Lt2=tk.Label(win,text='place:') #设置标签
Lt2.place(x=10,y=120) #设置位置
t2=tk.Entry(win,width=13) #设置标签后的输入框
t2.place(x=50,y=120) #设置位置
Lt3=tk.Label(win,text='name:')
Lt3.place(x=200,y=120)
t3=tk.Entry(win,width=15)
t3.place(x=245,y=120)
#3.创建列表框
place=[] #分别创建两个空列表
name=[]
book={} #定义一个字典把name和value分别看成key和value
var=tk.StringVar() #创建变量
lb=tk.Listbox(win,width=30,height=6,selectmode='multiple') # 创建列表框
lb.place(x=80,y=180) #设置列表框位置
#7.定义函数
def add_book(): #定义添加图书函数
place_value=t2.get() #获取输入框中输入的值
name_key=t3.get()
if var.get()=='A': #判断是否是添加图书按钮
place.append(place_value) #把获取到的值添加到建好的空列表中
name.append(name_key)
book[name_key]=place_value #字典赋值
lb.insert('end',name_key) #向列表框中插入数据
t2.delete(0,'end') #删除输入框中输入的
t3.delete(0,'end')
def del_book(): #定义删除图书函数
if var.get()=='B': #判断是否是删除图书按钮
lb.delete(lb.curselection()) #删除光标选中的
def modify_book(): #定义修改图书函数
if var.get()=='C': #判断是否是修改图书位置按钮
select=lb.curselection() #定义一个变量
new_place=t2.get() #获取输入框输入的
index=select[0] #select[0]:相当于表示在列表中取出一个值
place[index]=new_place #赋新的值
t2.delete(0,'end') #删除输入框中的数据
place[index]=new_place
var1.set(f'更改后的位置编码为:{new_place}') #输出
def select_book(): #定义选择查看图书函数
if var.get()=='D': #判断是否是产看图书按钮
value=lb.get(lb.curselection()) #获取光标选中的值的
var1.set(f'书名:{value}\n书的位置编码:{book[value]}') #输出
def return_book(): #定义退出系统的函数
if var.get()=='E': #判断是否是退出系统的按钮
win.quit() #关闭界面
#4.设置按钮
r1=tk.Radiobutton(win,text='添加图书',variable=var,value='A',command=add_book)
r1.place(x=40,y=50)
r2=tk.Radiobutton(win,text='删除图书',variable=var,value='B',command=del_book)
r2.place(x=150,y=50)
r3=tk.Radiobutton(win,text='图书信息修改',variable=var,value='C',command=modify_book)
r3.place(x=260,y=50)
r5=tk.Radiobutton(win,text='图书信息查看',variable=var,value='D',command=select_book)
r5.place(x=40,y=90)
r6=tk.Radiobutton(win,text='退出系统',variable=var,value='E',command=return_book)
r6.place(x=150,y=90)
#5.文本显示框
Lt4=tk.Label(win,text='图书目录 :') #设置标签
Lt4.place(x=40,y=155) #设置标签的位置
var1=tk.StringVar() #定义一个变量
Lt5=tk.Label(win,textvariable=var1,width=30,height=9) #设置一个文本可以改变的空标签
Lt5.place(x=80,y=347) #设置它的位置
Lt6=tk.Label(win,text='图书信息显示台 :') #给刚设置好的空标签设置一个标签(名)
Lt6.place(x=40,y=320) #设置位置
#6.设置按钮
btn=tk.Button(win,command=lambda :{'A':add_book,'B':del_book,'C':modify_book,'D':select_book,'E':return_book})
btn.place(x=600,y=500) #通过使用commend,分别指向不同的匿名函数(一行表达式),来区分每个按钮
#8.执行程序
win.mainloop()
程序运行效果:
输入place和name后点击添加图书,图书被添加到图书目录中,完成添加图书操作
光标选中想要删除的图书后点击删除图书按钮,即完成删除图书操作
光标选中想要修改的图书位置,在place中输入想要改的新位置,点击按钮即可完成
光标选中想要查看的图书,点击图书信息查看,即可在图书信息显示台显示图书信息
点击退出程序即可直接关闭窗口