Python 图书管理系统 GUI界面 (源码在最后)
发布人:shili8
发布时间:2024-10-15 11:56
阅读次数:0
**图书管理系统 GUI 界面**
图书管理系统是用于管理图书馆的软件系统。它可以帮助管理员管理图书的借出、归还、添加和删除等功能。下面我们将使用 Python语言和 Tkinter 库来实现一个简单的图书管理系统 GUI 界面。
**系统功能**
1. 添加图书:用户可以添加新的图书到系统中。
2. 借出图书:用户可以借出已经存在的图书。
3. 归还图书:用户可以归还已经借出的图书。
4. 删除图书:管理员可以删除已经存在的图书。
5. 查询图书:用户可以查询所有的图书信息。
**系统设计**
1. 使用 Tkinter 库创建 GUI 界面。
2. 使用 SQLite 数据库来存储图书信息。
3. 使用 Python语言编写系统逻辑。
**代码实现**
import tkinter as tkfrom tkinter import messageboximport sqlite3# 创建数据库连接conn = sqlite3.connect('book.db')
cursor = conn.cursor()
# 创建表格cursor.execute('''
CREATE TABLE IF NOT EXISTS book (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
author TEXT NOT NULL,
status TEXT NOT NULL DEFAULT 'available'
)
''')
class BookManagementSystem:
def __init__(self, root):
self.root = root self.root.title('图书管理系统')
self.create_widgets()
def create_widgets(self):
# 添加图书按钮 add_button = tk.Button(self.root, text='添加图书', command=self.add_book)
add_button.pack(pady=10)
# 借出图书按钮 borrow_button = tk.Button(self.root, text='借出图书', command=self.borrow_book)
borrow_button.pack(pady=10)
# 归还图书按钮 return_button = tk.Button(self.root, text='归还图书', command=self.return_book)
return_button.pack(pady=10)
# 删除图书按钮 delete_button = tk.Button(self.root, text='删除图书', command=self.delete_book)
delete_button.pack(pady=10)
# 查询图书按钮 query_button = tk.Button(self.root, text='查询图书', command=self.query_book)
query_button.pack(pady=10)
def add_book(self):
# 创建添加图书窗口 add_window = tk.Toplevel(self.root)
add_window.title('添加图书')
# 标签和输入框 title_label = tk.Label(add_window, text='标题:')
title_label.grid(row=0, column=0)
title_entry = tk.Entry(add_window)
title_entry.grid(row=0, column=1)
author_label = tk.Label(add_window, text='作者:')
author_label.grid(row=1, column=0)
author_entry = tk.Entry(add_window)
author_entry.grid(row=1, column=1)
# 确定按钮 confirm_button = tk.Button(add_window, text='确定', command=lambda: self.add_book_to_db(title_entry.get(), author_entry.get()))
confirm_button.grid(row=2, column=0, columnspan=2)
def add_book_to_db(self, title, author):
# 添加图书到数据库 cursor.execute('INSERT INTO book (title, author) VALUES (?, ?)', (title, author))
conn.commit()
messagebox.showinfo('提示', '添加成功!')
def borrow_book(self):
# 创建借出图书窗口 borrow_window = tk.Toplevel(self.root)
borrow_window.title('借出图书')
# 标签和输入框 title_label = tk.Label(borrow_window, text='标题:')
title_label.grid(row=0, column=0)
title_entry = tk.Entry(borrow_window)
title_entry.grid(row=0, column=1)
# 确定按钮 confirm_button = tk.Button(borrow_window, text='确定', command=lambda: self.borrow_book_from_db(title_entry.get()))
confirm_button.grid(row=1, column=0, columnspan=2)
def borrow_book_from_db(self, title):
# 借出图书到数据库 cursor.execute('UPDATE book SET status = ? WHERE title = ?', ('borrowed', title))
conn.commit()
messagebox.showinfo('提示', '借出成功!')
def return_book(self):
# 创建归还图书窗口 return_window = tk.Toplevel(self.root)
return_window.title('归还图书')
# 标签和输入框 title_label = tk.Label(return_window, text='标题:')
title_label.grid(row=0, column=0)
title_entry = tk.Entry(return_window)
title_entry.grid(row=0, column=1)
# 确定按钮 confirm_button = tk.Button(return_window, text='确定', command=lambda: self.return_book_to_db(title_entry.get()))
confirm_button.grid(row=1, column=0, columnspan=2)
def return_book_to_db(self, title):
# 归还图书到数据库 cursor.execute('UPDATE book SET status = ? WHERE title = ?', ('available', title))
conn.commit()
messagebox.showinfo('提示', '归还成功!')
def delete_book(self):
# 创建删除图书窗口 delete_window = tk.Toplevel(self.root)
delete_window.title('删除图书')
# 标签和输入框 title_label = tk.Label(delete_window, text='标题:')
title_label.grid(row=0, column=0)
title_entry = tk.Entry(delete_window)
title_entry.grid(row=0, column=1)
# 确定按钮 confirm_button = tk.Button(delete_window, text='确定', command=lambda: self.delete_book_from_db(title_entry.get()))
confirm_button.grid(row=1, column=0, columnspan=2)
def delete_book_from_db(self, title):
# 删除图书到数据库 cursor.execute('DELETE FROM book WHERE title = ?', (title,))
conn.commit()
messagebox.showinfo('提示', '删除成功!')
def query_book(self):
# 创建查询图书窗口 query_window = tk.Toplevel(self.root)
query_window.title('查询图书')
# 标签和输入框 title_label = tk.Label(query_window, text='标题:')
title_label.grid(row=0, column=0)
title_entry = tk.Entry(query_window)
title_entry.grid(row=0, column=1)
# 确定按钮 confirm_button = tk.Button(query_window, text='确定', command=lambda: self.query_book_from_db(title_entry.get()))
confirm_button.grid(row=1, column=0, columnspan=2)
def query_book_from_db(self, title):
# 查询图书到数据库 cursor.execute('SELECT * FROM book WHERE title = ?', (title,))
result = cursor.fetchone()
if result:
messagebox.showinfo('提示', '标题:{}作者:{} 状态:{}'.format(result[1], result[2], result[3]))
else:
messagebox.showinfo('提示', '未找到图书!')
root = tk.Tk()
app = BookManagementSystem(root)
root.mainloop()
conn.close()
**注意**
* 这个代码实现了一个简单的图书管理系统 GUI 界面。
* 用户可以添加、借出、归还和删除图书。
* 系统使用 SQLite 数据库来存储图书信息。
*请在运行前确保 Python 和 Tkinter 库已安装。
**结束**
以上就是本文对 Python 图书管理系统 GUI 界面的实现过程。希望通过这个例子,读者能够更好地理解如何使用 Tkinter 库和 SQLite 数据库来创建一个简单的图书管理系统 GUI 界面。

