1+ import tkinter as tk
2+ from tkinter import messagebox
3+
4+ class LibraryManagement :
5+ def __init__ (self , master ):
6+ self .master = master
7+ self .master .title ("Library Management System" )
8+ self .master .geometry ("400x400" )
9+ self .master .config (bg = '#708090' )
10+
11+ self .books = []
12+ self .lend_list = []
13+
14+ # Labels
15+ self .login_label = tk .Label (self .master , text = "Library Management System" , font = ("Helvetica" , 16 ), bg = '#708090' , fg = 'white' )
16+ self .login_label .pack ()
17+ self .username_label = tk .Label (self .master , text = "Username" , font = ("Helvetica" , 12 ), bg = '#708090' , fg = 'white' )
18+ self .username_label .pack ()
19+ self .username_entry = tk .Entry (self .master , font = ("Helvetica" , 12 ))
20+ self .username_entry .pack ()
21+ self .password_label = tk .Label (self .master , text = "Password" , font = ("Helvetica" , 12 ), bg = '#708090' , fg = 'white' )
22+ self .password_label .pack ()
23+ self .password_entry = tk .Entry (self .master , font = ("Helvetica" , 12 ), show = "*" )
24+ self .password_entry .pack ()
25+
26+ # Login
27+ self .login_button = tk .Button (self .master , text = "Login" , command = self .login , font = ("Helvetica" , 12 ))
28+ self .login_button .pack ()
29+
30+ # Register
31+ self .register_button = tk .Button (self .master , text = "Register" , command = self .register , font = ("Helvetica" , 12 ))
32+ self .register_button .pack ()
33+
34+ self .username = ""
35+ self .password = ""
36+ self .librarians = []
37+
38+ def login (self ):
39+ self .username = self .username_entry .get ()
40+ self .password = self .password_entry .get ()
41+ for librarian in self .librarians :
42+ if self .username == librarian [0 ] and self .password == librarian [1 ]:
43+ self .username_entry .delete (0 , tk .END )
44+ self .password_entry .delete (0 , tk .END )
45+ self .login_label .destroy ()
46+ self .username_label .destroy ()
47+ self .username_entry .destroy ()
48+ self .password_label .destroy ()
49+ self .password_entry .destroy ()
50+ self .login_button .destroy ()
51+ self .register_button .destroy ()
52+ self .library_management_screen ()
53+ return
54+ messagebox .showerror ("Error" , "Invalid username or password" )
55+
56+ def register (self ):
57+ self .username = self .username_entry .get ()
58+ self .password = self .password_entry .get ()
59+ self .librarians .append ([self .username , self .password ])
60+ self .username_entry .delete (0 , tk .END )
61+ self .password_entry .delete (0 , tk .END )
62+ def library_management_screen (self ):
63+ self .add_book_label = tk .Label (self .master , text = "Add Book" , font = ("Helvetica" , 16 ), bg = '#708090' , fg = 'white' )
64+ self .add_book_label .pack ()
65+ self .add_book_entry = tk .Entry (self .master , font = ("Helvetica" , 12 ))
66+ self .add_book_entry .pack ()
67+ self .add_book_button = tk .Button (self .master , text = "Add Book" , command = self .add_book , font = ("Helvetica" , 12 ))
68+ self .add_book_button .pack ()
69+ self .remove_book_label = tk .Label (self .master , text = "Remove Book" , font = ("Helvetica" , 16 ), bg = '#708090' , fg = 'white' )
70+ self .remove_book_label .pack ()
71+ self .remove_book_entry = tk .Entry (self .master , font = ("Helvetica" , 12 ))
72+ self .remove_book_entry .pack ()
73+ self .remove_book_button = tk .Button (self .master , text = "Remove Book" , command = self .remove_book , font = ("Helvetica" , 12 ))
74+ self .remove_book_button .pack ()
75+ self .issue_book_label = tk .Label (self .master , text = "Issue Book" , font = ("Helvetica" , 16 ), bg = '#708090' , fg = 'white' )
76+ self .issue_book_label .pack ()
77+ self .issue_book_entry = tk .Entry (self .master , font = ("Helvetica" , 12 ))
78+ self .issue_book_entry .pack ()
79+ self .issue_book_button = tk .Button (self .master , text = "Issue Book" , command = self .issue_book , font = ("Helvetica" , 12 ))
80+ self .issue_book_button .pack ()
81+ self .view_books_button = tk .Button (self .master , text = "View Books" , command = self .view_books , font = ("Helvetica" , 12 ))
82+ self .view_books_button .pack ()
83+
84+ def add_book (self ):
85+ book = self .add_book_entry .get ()
86+ self .books .append (book )
87+ messagebox .showinfo ("Success" , "Book added successfully" )
88+ self .add_book_entry .delete (0 , tk .END )
89+
90+ def remove_book (self ):
91+ book = self .remove_book_entry .get ()
92+ if book in self .books :
93+ self .books .remove (book )
94+ messagebox .showinfo ("Success" , "Book removed successfully" )
95+ else :
96+ messagebox .showerror ("Error" , "Book not found" )
97+ self .remove_book_entry .delete (0 , tk .END )
98+
99+ def issue_book (self ):
100+ book = self .issue_book_entry .get ()
101+ if book in self .books :
102+ self .lend_list .append (book )
103+ self .books .remove (book )
104+ messagebox .showinfo ("Success" , "Book issued successfully" )
105+ else :
106+ messagebox .showerror ("Error" , "Book not found" )
107+ self .issue_book_entry .delete (0 , tk .END )
108+
109+ def view_books (self ):
110+ message = "\n " .join (self .books )
111+ messagebox .showinfo ("Books" , message )
112+
113+ if __name__ == "__main__" :
114+ root = tk .Tk ()
115+ app = LibraryManagement (root )
116+ root .mainloop ()
0 commit comments