使用Python的tkinter创建“小型”图书馆管理系统

创作目的:

通过设计图书馆管理系统,将图书馆管理员与学生用户分开处理,并通过不同的目标用户展示不同的功能与不同的权限操作。

注意事项:

此代码主要用于txt文本操作,各位创作者可根据自己的需求在我的基础上创新、完善即可。

主要功能函数:

 1.图书管理员应具备查找书籍、添加书籍、查重、删除书籍、导入书籍文件、导出书籍文件共6个功能模块。

2.学生用户应具备查找书籍、借用书籍、归还书籍共3个功能模块。

3.操作包括:Python程序流程结构、组合数据类型、函数、异常处理、文件操作、标准库、第三方库、类和对象、GUI编程等

4.第三方库包括:import tkinter as tk、from tkinter import ttk、from tkinter import simpledialog,messageboxfrom、from PIL import ImageTk,Image

5.功能模块函数:

图书管理员:(查找图书模块)def find_book(self)、(添加图书模块)def add_book(self)、(删除图书模块)def delete_book(self)、(查重模块)def check_book(self)、(导入文件模块)def input_file(self)、(导出文件模块)def out_file(self);

学生用户:(借用图书模块)def brrow_book(self)、(归还图书模块)def back_book(self)

通用模块:(操作书籍)def load_books(self)、(登录模块)def user_option1(self)

6.主要利用函数:tk.simpledialog.askstring(“元素1”,”元素2”)、tk.Listbox.delete(0,tk.END)、tk.Listbox.insert(tk.END)、messagebox.showinf(“”,””)以及相关组件的建立函数。

创建流程:

1.首先创建一个图书馆类(class Librarysystem)

import tkinter as tk
from tkinter import ttk
from tkinter import simpledialog,messagebox
from  PIL import ImageTk,Image

class LibrarySystem:
    #初始化图书馆管理系统类,初始化根窗口,并设置窗口标题和窗口大小,调用creation函数创建界面
    def __init__(self,root):#利用构造方法初始化
        self.root = root
        self.root.title('图书馆管理系统') # 设置主窗口标题
        self.root.geometry("600x400")
        self.creation()

2.在图书馆类中的构造方法中创建一个GUI主窗口(self.root)、管理员账号密码字典(self.operator_dict={})以及学生用户账号密码字典(self.student_dict={})。

    def creation(self):#创建相关基本信息
            self.operator_dict={}
            self.student_dict={}

            self.read_operator()
            self.read_student()

3.对主窗口进行增加操作:1.利用PIL库的Image()方法打开目标图片,再利用ImageTk的PhotoImage()函数将图像文件转换成PhotoImage对象,PhotoImage对象可以在tkinter中的控件(如Button、Lable)上显示图像;再通过tk.Label(self.root,image)函数创建图片标签,最后运用place()布局即可在主窗口生成图片。2.通过tk.Label()函数、ttk.Combobox()函数、tk.Button()函数通过place()布局在主窗口相应位置生成相应tkinter组件即可。

            self.bg_image=Image.open("Library.jpg")
            self.bg_photo=ImageTk.PhotoImage(self.bg_image)

            self.bg_lable=tk.Label(self.root,image=self.bg_photo)
            self.bg_lable.place(x=0,y=0,relwidth=1,relheight=1)


            self.chacterist_lable = tk.Label(self.root, text="用户选项")
            self.chacterist_lable.place(x=290, y=110)

            self.chacterist_Combobox = ttk.Combobox(self.root,values=("图书管理员","学生用户"),width=20)#使用Entry输入组件,用于显示和输入'用户名'信息
            self.chacterist_Combobox.place(x=240,y=130)

            self.login_button = tk.Button(self.root, text="确定",
                                     command=self.change)  # 使用tkinter的button点击组件,用于用户输入完用户名和密码然后登录,且设置了点击登录会有相应的反应
            self.login_button.place(x=300, y=155)

4.当用户点击登录按钮且成功登录时,利用布局自带的销毁函数方式,如:使用了place()布局,则使用place_forget()函数即可进行组件销毁,并展示出新的内容,当用户选择注销或注册时,则对后台的用户账号密码txt文件进行修改,以至于下一次可以使用新用户名及密码登录。

    #隐藏登录界面的一些组件,显示登录成功标签
    def disapper(self):#将组件销毁
        self.username_lable.place_forget()  # 让控件“不再显示”但控件还存在可以再次pack出来,既实现跳转操作
        self.username_entry.place_forget()
        self.password_lable.place_forget()
        self.password_entry.place_forget()
        self.login_button.place_forget()
        self.option_lable.place_forget()
        self.login_Combobox.place_forget()
        self.signup_lable = tk.Label(self.root, text="您已成功登录!")
        self.signup_lable.place(x=210, y=140)
        self.signup_lable.config(font=("宋体", 24))

5.对不同对象进行不同处理,本次项目目标人群分为图书馆管理员和学生用户,二者通过不同的身份登录既有不同的权限操作:1.通过Commbox.get()函数即可获得将要登录的用户身份(Charecter = str(self.chacterist_Combobox.get())2.再通过新创一个操作主窗口,通过tk.Label()函数、ttk.Combobox()函数、tk.Button()函数通过place()布局在主窗口相应位置生成相应tkinter组件即可。

    def sign_up(self, number):
        self.chacterist_lable.place_forget()
        self.chacterist_Combobox.place_forget()
        self.login_button.place_forget()

        self.username_lable = tk.Label(self.root, text="用户名")
        self.username_lable.place(x=200, y=110)

        self.username_entry = tk.Entry(self.root)  # 使用Entry输入组件,用于显示和输入'用户名'信息
        self.username_entry.place(x=240, y=110)

        self.password_lable = tk.Label(self.root, text="密码")
        self.password_lable.place(x=210, y=140)

        self.password_entry = tk.Entry(self.root, show='*')  # 使用Entry输入组件,用于显示和输入"密码"信息,且输出的方式为‘*’
        self.password_entry.place(x=240, y=140)
        if number == '图书管理员':
            self.option_lable = tk.Label(self.root, text="选项")
            self.option_lable.place(x=210, y=170)
            self.login_Combobox=ttk.Combobox(self.root,values=("登录", "注册", "注销"),width=17)
            self.login_Combobox.place(x=241,y=170)
            self.login_button = tk.Button(self.root, text="确定",
                                          command=self.user_option1)  # 使用tkinter的button点击组件,用于用户输入完用户名和密码然后登录,且设置了点击登录会有相应的反应
            self.login_button.place(x=295, y=205)

        elif number == '学生用户':
            self.option_lable = tk.Label(self.root, text="选项")
            self.option_lable.place(x=210, y=170)
            self.login_Combobox = ttk.Combobox(self.root, values=("登录", "注册", "注销"), width=17)
            self.login_Combobox.place(x=241, y=170)
            self.login_button = tk.Button(self.root, text="确定",
                                          command=self.user_option2)  # 使用tkinter的button点击组件,用于用户输入完用户名和密码然后登录,且设置了点击登录会有相应的反应
            self.login_button.place(x=295, y=205)

6.当选择操作主窗口的操作(self.option_Combobox)权限时,点击确定按钮(self.option_button)则可进行相应操作。

option=str(self.login_Combobox.get())
        if option=="登录":
            self.login1()
        elif option=="注册":
            self.register_operator()
        elif option=="注销":
            self.delete_operator()
        else:
            messagebox.showinfo("提示","不存在任何有效信息")

结果演示:

(1)用户选项页面,面向用户分两种群体,不同的用户拥有不同的权限。

(2)当点击确定按钮,出现用户登录页面,该页面根据(1)选择的用户不同,其“主题”会有相应变化,且具有三个选项“登录、注册、注销”

(3)当输入用户的账号以及密码正确成功登录时,会产生新的操作主窗口,不同的用户具有不同的功能选择。

(4)当用户点击注册时,记录着用户密码账号的txt会随之变化,

账号密码的txt文件中多了账号为“888”,密码为“888”的用户

同理,注销用户也会对txt文件产生影响,消除目标账号密码;该原理同样适用于学生用户中。

注意:因为功能以及步骤过多,这里不再一一展示,需要源代码请私聊博主哦~

创作不易,请点个赞哟~

  • 35
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python是一种流行的高级编程语言,广泛应用于开发各种类型的应用程序。其中,TkinterPython的一个GUI工具包,可以用于开发各种界面,包括Web应用程序。 在这个项目中,我们可以使用PythonTkinter开发一个数据库图书系统管理应用程序。我们可以使用SQLite或MySQL等关系型数据库来存储和检索图书信息。 用户可以使用该应用程序来管理图书信息,包括添加新书籍、删除、编辑和检索当前库存。我们可以使用Tkinter的窗口小部件,如标签、文本框、按钮、表格等来设计界面,从而实现用户友好的界面和易于使用的操作。 在该项目中,我们需要设计一个数据库模型来存储图书信息,并创建API来处理这些数据。借助Tkinter GUI工具包,我们可以显示API返回的数据,使用户能够以交互方式的方式查看和管理当前库存。 这个项目可以帮助我们学习Python编程、GUI设计、SQL数据库和API开发。此项目还可以用于学生、图书管理员和图书馆员等对图书库存进行日常管理。 ### 回答2: Python Tkinter是一个用于创建图形用户界面的Python库。数据库图书系统管理是一个用于管理图书馆或书店的图书信息和借阅记录的系统。 首先,我们需要创建一个图形用户界面,可以使用Tkinter库来实现。通过Tkinter,我们可以在窗口中添加各种组件,如标签、文本框、按钮等。我们可以使用标签来显示图书的相关信息,如书名、作者和出版日期等。然后,我们可以使用文本框来输入和修改图书信息。按钮可以用于触发各种操作,如添加新书籍、删除图书或更新图书信息。 其次,我们需要使用数据库来存储图书信息和借阅记录。可以使用SQLite来创建一个本地数据库文件。在数据库中,可以创建一个图书表,包含图书的各种属性,如书名、作者和出版日期。还可以创建一个借阅表,用于记录借阅记录,包括借阅日期、归还日期和借阅者信息。 然后,我们需要连接数据库并编写相关的操作函数。可以使用Python的SQLite库来实现数据库的连接和操作。通过这些函数,我们可以实现添加新书籍、删除图书和更新图书信息的功能。还可以实现查询图书信息和借阅记录的功能。 最后,将图形用户界面和数据库操作结合起来。通过按钮的点击事件,可以触发相应的数据库操作函数。通过文本框来获取用户输入的图书信息,并在标签中显示查询结果。 综上所述,Python Tkinter可以用于创建一个数据库图书系统管理的图形用户界面。通过连接数据库并编写相关操作函数,我们可以实现添加、删除、更新和查询图书信息的功能。这样的系统可以帮助管理图书馆或书店的图书,并记录借阅记录。 ### 回答3: Python Tkinter数据库图书系统管理是指使用Python编程语言Tkinter库来开发和管理一个图书系统的应用程序。 首先,需要使用Python中的数据库操作模块(如MySQLdb或sqlite3)连接到一个数据库,该数据库将用于存储图书系统的数据。可以创建一个名为Books的表,包含图书的相关信息,如书名、作者和价格等。 接着,使用Tkinter库来创建图书系统的用户界面。可以使用Tkinter提供的各种界面组件,如标签、文本框和按钮等,来创建一个交互式的界面。可以使用grid或pack等方法来布局界面,并为每个组件添加相应的功能。 在图书系统的界面中,可以添加按钮来执行不同的操作,如添加图书、删除图书、搜索图书等。当用户点击添加图书按钮时,可以弹出一个对话框,用户可以在该对话框中输入图书的相关信息,然后将该信息插入到数据库中的Books表中。 同样地,当用户点击删除图书按钮时,可以弹出一个对话框,用户可以在该对话框中输入要删除的图书的相关信息,然后将该信息从数据库中的Books表中删除。 另外,还可以添加一个搜索框,允许用户根据书名、作者或价格等条件来搜索图书。当用户点击搜索按钮时,可以从数据库中查询满足条件的图书,然后在界面中显示查询结果。 最后,在图书系统中,还可以添加一些其他的功能,如显示所有图书、修改图书信息等。这些功能的实现方式与上述操作类似,都是通过与数据库的交互来实现的。 总之,Python Tkinter数据库图书系统管理使用Python编程语言Tkinter库来实现一个完整的图书管理系统,它可以实现添加、删除、搜索以及其他常见的图书管理操作,为用户提供便捷的图书管理功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值