使用python的tkinter利用图形用户界面实现图书管理系统的登录、主界面和注册页面
时间: 2024-02-17 22:01:31 浏览: 29
好的,下面是一个使用 Python 的 Tkinter 模块实现图书管理系统的登录、主界面和注册页面的示例:
```python
from tkinter import *
import tkinter.messagebox as messagebox
class Book:
def __init__(self, name, author, category):
self.name = name
self.author = author
self.category = category
class Library:
def __init__(self):
self.books = []
def add_book(self, book):
self.books.append(book)
def remove_book(self, book):
self.books.remove(book)
def search_book(self, name):
for book in self.books:
if book.name == name:
return book
return None
class LoginGUI:
def __init__(self, library):
self.library = library
self.window = Tk()
self.window.title("登录")
self.window.geometry("200x100")
self.username_label = Label(self.window, text="用户名:")
self.username_label.pack()
self.username_entry = Entry(self.window)
self.username_entry.pack()
self.password_label = Label(self.window, text="密码:")
self.password_label.pack()
self.password_entry = Entry(self.window, show="*")
self.password_entry.pack()
self.login_button = Button(self.window, text="登录", command=self.login)
self.login_button.pack()
def login(self):
username = self.username_entry.get()
password = self.password_entry.get()
if username == "admin" and password == "admin":
self.window.destroy()
main_gui = MainGUI(self.library)
main_gui.run()
else:
messagebox.showerror("错误", "用户名或密码错误")
def run(self):
self.window.mainloop()
class MainGUI:
def __init__(self, library):
self.library = library
self.window = Tk()
self.window.title("图书管理系统")
self.window.geometry("400x300")
self.name_label = Label(self.window, text="书名:")
self.name_label.grid(row=0, column=0)
self.name_entry = Entry(self.window)
self.name_entry.grid(row=0, column=1)
self.author_label = Label(self.window, text="作者:")
self.author_label.grid(row=1, column=0)
self.author_entry = Entry(self.window)
self.author_entry.grid(row=1, column=1)
self.category_label = Label(self.window, text="分类:")
self.category_label.grid(row=2, column=0)
self.category_entry = Entry(self.window)
self.category_entry.grid(row=2, column=1)
self.add_button = Button(self.window, text="添加", command=self.add_book)
self.add_button.grid(row=3, column=0)
self.remove_button = Button(self.window, text="删除", command=self.remove_book)
self.remove_button.grid(row=3, column=1)
self.search_button = Button(self.window, text="搜索", command=self.search_book)
self.search_button.grid(row=3, column=2)
self.result_label = Label(self.window, text="")
self.result_label.grid(row=4, column=0, columnspan=3)
self.logout_button = Button(self.window, text="退出登录", command=self.logout)
self.logout_button.grid(row=5, column=2)
def add_book(self):
name = self.name_entry.get()
author = self.author_entry.get()
category = self.category_entry.get()
book = Book(name, author, category)
self.library.add_book(book)
self.result_label.config(text="添加成功")
def remove_book(self):
name = self.name_entry.get()
book = self.library.search_book(name)
if book:
self.library.remove_book(book)
self.result_label.config(text="删除成功")
else:
self.result_label.config(text="未找到该书")
def search_book(self):
name = self.name_entry.get()
book = self.library.search_book(name)
if book:
self.result_label.config(text="书名:{} 作者:{} 分类:{}".format(book.name, book.author, book.category))
else:
self.result_label.config(text="未找到该书")
def logout(self):
self.window.destroy()
login_gui = LoginGUI(self.library)
login_gui.run()
def run(self):
self.window.mainloop()
class RegisterGUI:
def __init__(self, library):
self.library = library
self.window = Toplevel()
self.window.title("注册")
self.window.geometry("200x100")
self.username_label = Label(self.window, text="用户名:")
self.username_label.pack()
self.username_entry = Entry(self.window)
self.username_entry.pack()
self.password_label = Label(self.window, text="密码:")
self.password_label.pack()
self.password_entry = Entry(self.window, show="*")
self.password_entry.pack()
self.register_button = Button(self.window, text="注册", command=self.register)
self.register_button.pack()
def register(self):
username = self.username_entry.get()
password = self.password_entry.get()
messagebox.showinfo("提示", "注册成功")
self.window.destroy()
library = Library()
login_gui = LoginGUI(library)
register_gui = RegisterGUI(library)
def show_register_gui():
register_gui.window.deiconify()
register_button = Button(login_gui.window, text="注册", command=show_register_gui)
register_button.pack()
login_gui.run()
```
这个程序实现了登录、主界面和注册页面的功能,使用了面向对象的编程方式,并使用了 Tkinter 模块进行界面设计。用户可以在登录页面输入用户名和密码,并点击登录按钮进行操作。如果用户名和密码正确,程序会打开主界面,用户可以在主界面中添加、删除和搜索图书,并且可以退出登录。如果用户名和密码不正确,程序会弹出错误提示框。用户也可以在登录页面点击注册按钮,打开注册页面进行注册操作。注册页面包含用户名和密码的输入框,以及注册按钮。如果注册成功,程序会弹出提示框。