Feb-28-2020, 05:17 PM
Hi,
as soon as I log in and press the Registration-button, the second Window can't open because of the iExit-button.
The Error is:
File "E:/Python/Akustik/Akustik/Pharmacy Login System.py", line 155
Mainframe = Frame(self.master)
^
IndentationError: unindent does not match any outer indentation level
as soon as I log in and press the Registration-button, the second Window can't open because of the iExit-button.
The Error is:
File "E:/Python/Akustik/Akustik/Pharmacy Login System.py", line 155
Mainframe = Frame(self.master)
^
IndentationError: unindent does not match any outer indentation level
from tkinter import*
import tkinter.messagebox
from tkinter import ttk
import tkinter as tk
import random
import time;
import datetime
def main():
root = tk.Tk()
app = Window1(root)
root.mainloop()
class Window1:
def __init__(self,master):
self.master = master
self.master.title("Pharmacy")
self.master.geometry('1350x750+0+0')
self.frame = Frame(self.master)
self.frame.pack()
self.LabelTitle = Label(self.frame, text = 'Pharmacy Management System',
font = ('arial', 50, 'bold'), bd = 20)
self.LabelTitle.grid(row = 0, column = 0, columnspan = 2, pady = 10)
self.Username = StringVar()
self.Password = StringVar()
self.Loginframe1 = Frame(self.frame, width = 1010, height = 300, bd = 20,relief = 'ridge')
self.Loginframe1.grid(row = 1, column = 0)
self.Loginframe2 = Frame(self.frame, width = 1100, height = 100, bd = 20, relief = 'ridge')
self.Loginframe2.grid(row = 2, column = 0, padx=50)
self.Loginframe3 = Frame(self.frame, width = 1010, height = 200, bd = 10,relief = 'ridge')
self.Loginframe3.grid(row = 3, column = 0, pady = 2)
#------------------------------------------------------------------------------------
self.lblUsername = Label(self.Loginframe1, text = 'Username',font = ('arial', 30, 'bold'), bd = 20)
self.lblUsername.grid(row = 0, column = 0)
self.txtUsername = Entry(self.Loginframe1, text = 'Username', width =15, font = ('arial', 30, 'bold'), bd = 20, textvariable = self.Username)
self.txtUsername.grid(row = 0, column = 1)
self.lblPassword = Label(self.Loginframe1, text = 'Password', font = ('arial', 30, 'bold'), bd = 20)
self.lblPassword.grid(row = 1, column = 0)
self.txtPassword = Entry(self.Loginframe1, text = 'Password', width =15, font = ('arial', 30, 'bold'), bd = 20, show ="*", textvariable = self.Password)
self.txtPassword.grid(row = 1, column = 1)
#------------------------------------------------------------------------------------
self.btnLogin = Button(self.Loginframe2, text = "Login", width = 11,font = ('arial', 20, 'bold'),
command = self.Login_System)
self.btnLogin.grid(row = 0, column = 0)
self.btnReset = Button(self.Loginframe2,text = "Reset", width = 12,font = ('arial', 20, 'bold'),
command = self.Reset)
self.btnReset.grid(row = 0, column = 1)
self.btnExit = Button(self.Loginframe2,text = "Exit", width = 11,font = ('arial', 20, 'bold'),
command = self.Exit)
self.btnExit.grid(row = 0, column = 2)
#------------------------------------------------------------------------------------
self.btnRegistration = Button(self.Loginframe3, text = "Registration",
state = DISABLED, command = self.registration_window,font = ('arial', 20, 'bold'))
self.btnRegistration.grid(row = 0, column = 0, pady=5, padx=77)
self.btnHospital = Button(self.Loginframe3,text = "Hospital",
state = DISABLED, command = self.hospital_window,font = ('arial', 20, 'bold'))
self.btnHospital.grid(row = 0, column = 1, pady=5, padx=77)
#------------------------------------------------------------------------------------
def Login_System(self):
user = (self.Username.get())
pas = (self.Password.get())
if user == str(1) and pas == str(2):
self.btnRegistration.config(state = NORMAL)
self.btnHospital.config(state = NORMAL)
else:
tkinter.messagebox.showinfo("Pharmacy Management System","You have entered an invalid input!")
self.btnRegistration.config(state = DISABLED )
self.btnHospital.config(state = DISABLED )
self.Username.set("")
self.Password.set("")
self.txtUsername.focus()
def Reset(self):
self.btnRegistration.config(state = DISABLED )
self.btnHospital.config(state = DISABLED )
self.Username.set("")
self.Password.set("")
self.txtUsername.focus()
def Exit(self):
result = tkinter.messagebox.askyesno("Pharmacy Management System","Are you sure?")
if result == True:
self.master.destroy()
return
#--------------------------------------------open new Window ----------------------------------------
def registration_window(self):
self.newWindow = Toplevel(self.master)
self.app = Window2(self.newWindow)
def hospital_window(self):
self.newWindow = Toplevel(self.master)
self.app = Window3(self.newWindow)
class Window2:
def __init__(self,master):
self.master = master
self.master.title("Registration")
self.master.geometry('1350x750+0+0')
self.frame = Frame(self.master)
self.frame.pack()
DateofOrder = StringVar()
DateofOrder.set(time.strftime("%d/%m/%Y"))
var1 = StringVar()
var2 = StringVar()
var3 = StringVar()
var4 = IntVar()
Firstname = StringVar()
Surname = StringVar()
Address = StringVar()
PostCode = StringVar()
Telephone = StringVar()
Ref = StringVar()
Membership = StringVar()
Membership.set("0")
#--------------------------------------Functions Declared--------------------------------------------
def iExit(self):
result = tkinter.messagebox.askyesno("Club Member Registration System", "Confirm if you want to exit.")
if result == True:
self.master.destroy()
return
# def iExit():
# iExit = tkinter.messagebox.askyesno("Club Member Registration System", "Confirm if you want to exit.")
# if iExit > 0:
# root.destroy()
# return
#--------------------------------------Frames--------------------------------------------
Mainframe = Frame(self.master)
Mainframe.pack()
TitleFrame = Frame(Mainframe, bd = 20, width = 1350, padx = 26, relief = RIDGE)
TitleFrame.pack(side = TOP)
self.lblTitle = Label(TitleFrame,font = ('arial',50,'bold'),text = "Member Registration", padx = 2)
self.lblTitle.grid()
#----------------------------------------Lower Frames--------------------------------------------
MemberDetailsFrame = LabelFrame(Mainframe, width = 1350, height = 500, bd = 20,
pady = 5, relief = RIDGE)
MemberDetailsFrame.pack(side = BOTTOM)
FrameDetails = LabelFrame(MemberDetailsFrame, bd = 10, width = 800, height = 400, relief = RIDGE)
FrameDetails.pack(side = LEFT)
MembersName_F = LabelFrame(FrameDetails, bd = 10, width = 350, height = 400,
font = ('arial', 12, 'bold'), text = 'Customer Name', relief = RIDGE)
MembersName_F.grid(row = 0, column = 0)
Receipt_ButtonFrame = LabelFrame(MemberDetailsFrame, bd = 10, width = 1000, height = 400,
relief = RIDGE)
Receipt_ButtonFrame.pack(side = RIGHT)
#------------------------------------------------------------------------------------
self.lblReferenceNo = Label(MembersName_F,font = ('arial',15,'bold'),text = "Reference No", bd = 7)
self.lblReferenceNo.grid(row = 0, column = 0, sticky =W)
self.txtReferenceNo = Entry(MembersName_F,font = ('arial',15,'bold'), bd = 7, textvariable = Ref,
state = DISABLED, insertwidth = 2)
self.txtReferenceNo.grid(row = 0, column = 1)
self.lblFirstname = Label(MembersName_F,font = ('arial',15,'bold'),text = "Firstname", bd = 7)
self.lblFirstname.grid(row = 1, column = 0, sticky =W)
self.txtFirstname = Entry(MembersName_F,font = ('arial',15,'bold'), bd = 7, insertwidth = 2, textvariable = Firstname)
self.txtFirstname.grid(row = 1, column = 1)
self.lblSurname = Label(MembersName_F,font = ('arial',15,'bold'),text = "Surname", bd = 7)
self.lblSurname.grid(row = 2, column = 0, sticky =W)
self.txtSurname = Entry(MembersName_F,font = ('arial',15,'bold'), bd = 7, insertwidth = 2, textvariable = Surname)
self.txtSurname.grid(row = 2, column = 1)
self.lblAddress = Label(MembersName_F,font = ('arial',15,'bold'),text = "Address", bd = 7)
self.lblAddress.grid(row = 3, column = 0, sticky =W)
self.txtAddress = Entry(MembersName_F,font = ('arial',15,'bold'), bd = 7, insertwidth = 2, textvariable = Address)
self.txtAddress.grid(row = 3, column = 1)
self.lblPostCode = Label(MembersName_F,font = ('arial',15,'bold'),text = "PostCode", bd = 7)
self.lblPostCode.grid(row = 4, column = 0, sticky =W)
self.txtPostCode = Entry(MembersName_F,font = ('arial',15,'bold'), bd = 7, insertwidth = 2, textvariable = PostCode)
self.txtPostCode.grid(row = 4, column = 1)
self.lblTelephone = Label(MembersName_F,font = ('arial',15,'bold'),text = "Telephone", bd = 7)
self.lblTelephone.grid(row = 5, column = 0, sticky =W)
self.txtTelephone = Entry(MembersName_F,font = ('arial',15,'bold'), bd = 7, insertwidth = 2, textvariable = Telephone)
self.txtTelephone.grid(row = 5, column = 1)
self.lblDate = Label(MembersName_F,font = ('arial',15,'bold'),text = "Date", bd = 7)
self.lblDate.grid(row = 6, column = 0, sticky =W)
self.txtDate = Entry(MembersName_F,font = ('arial',15,'bold'), bd = 7, insertwidth = 2, textvariable = DateofOrder)
self.txtDate.grid(row = 6, column = 1)
#-------------------------------------------Member Information-------------------------------------------
self.lblProve_of_ID = Label(MembersName_F, font = ('arial', 14, 'bold'), text = "Prove of ID", bd = 7)
self.lblProve_of_ID.grid(row = 7, column = 0, sticky = W)
self.cboProve_of_ID = ttk.Combobox(MembersName_F, textvariable = var1, state = 'readonly',
font = ('arial', 14, 'bold'), width = 19)
self.cboProve_of_ID ['value'] = ('', 'Pilot Licence', 'Driving Licence', 'Passport', 'Student ID')
self.cboProve_of_ID.current(0)
self.cboProve_of_ID.grid(row = 7, column = 1)
self.lblType_of_Member = Label(MembersName_F, font = ('arial', 14, 'bold'), text = "Type_of_Member", bd = 7)
self.lblType_of_Member.grid(row = 8, column = 0, sticky = W)
self.cboType_of_Member = ttk.Combobox(MembersName_F, textvariable = var2, state = 'readonly',
font = ('arial', 14, 'bold'), width = 19)
self.cboType_of_Member ['value'] = ('', 'Full Member', 'Annual Membership', 'Pay As You Go', 'Honorary Member')
self.cboType_of_Member.current(0)
self.cboType_of_Member.grid(row = 8, column = 1)
self.lblMethod_of_Payment = Label(MembersName_F, font = ('arial', 14, 'bold'), text = "Method_of_Payment", bd = 7)
self.lblMethod_of_Payment.grid(row = 9, column = 0, sticky = W)
self.cboMethod_of_Payment = ttk.Combobox(MembersName_F, textvariable = var3, state = 'readonly',
font = ('arial', 14, 'bold'), width = 19)
self.cboMethod_of_Payment ['value'] = ('', 'Visa Card', 'Master Card', 'Debit Card', 'Cash')
self.cboMethod_of_Payment.current(0)
self.cboMethod_of_Payment.grid(row = 9, column = 1)
#-------------------------------------------Check Button-------------------------------------------
self.chkMembership = Checkbutton(MembersName_F, text = "Membership Fees", variable = var4, onvalue = 1,
offvalue = 0, font = ('arial', 16, 'bold')).grid(row = 10, column = 0, sticky = W)
self.txtMembership = Entry (MembersName_F, font =('arial', 14, 'bold'), textvariable = Membership, bd = 7,
insertwidth = 2, state = DISABLED, justify = RIGHT )
self.txtMembership.grid (row = 10, column = 1)
#-------------------------------------------Receipt-------------------------------------------
self.lblLabel = Label(Receipt_ButtonFrame, font = ('arial', 14, 'bold'),
text = "Member Ref\t Firstname\t Surname\t Address\t\t Date Reg.\t Telephone\t Member Paid", bd = 7)
self.lblLabel.grid(row = 0, column = 0, columnspan = 4)
self.txtReceipt = Text(Receipt_ButtonFrame, width = 112, height = 22, font = ('arial', 14, 'bold'), pady = 10, bd = 7)
self.txtReceipt.grid(row = 1, column = 0, columnspan = 4)
#-------------------------------------------Buttons-------------------------------------------
self.btnReceipt = Button(Receipt_ButtonFrame, padx = 18, bd = 7, font = ('arial', 16, 'bold'), width = 13, text = "Receipt")
self.btnReceipt.grid(row = 2, column = 0)
self.btnReset = Button(Receipt_ButtonFrame, padx = 18, bd = 7, font = ('arial', 16, 'bold'), width = 13, text = "Reset")
self.btnReset.grid(row = 2, column = 1)
self.btnExit = Button(Receipt_ButtonFrame, padx = 18, bd = 7, font = ('arial', 16, 'bold'), width = 13, text = "Exit", command = self.iExit)
self.btnExit.grid(row = 2, column = 2)
class Window3:
def __init__(self,master):
self.master = master
self.master.title("Hospital")
self.master.geometry('1350x750+0+0')
self.frame = Frame(self.master)
self.frame.pack()
#--------------------------------------------------------------------------------------
if __name__ == '__main__':
main()
