Я делаю базовую программу только для локальной машины, поэтому мне не нужно создавать ничего необычного, но я обнаружил, что мой код станет довольно длинным.Любые советы о том, как его улучшить, чтобы я не повторял код?У меня есть дополнительный код для добавления в отношении данных клиента и т. Д., Но я в первую очередь концентрируюсь на фундаменте.
from tkinter import *
from PIL import ImageTk, Image
root = Tk()
root.withdraw()
def login(event):
if ent1.get() == 'admin' and ent2.get() == 'password':
root.iconify()
top.destroy()
def client_data(event):
root.withdraw()
top = Toplevel()
top.title('Client Data')
top.geometry('800x500')
top.configure(background='grey')
client1 = Message(top, text='Random skeleton', bg='grey', width=350)
client1.pack()
x = Button(top, text='Close', bg='red', command=top.destroy)
root.iconify()
x.pack()
image1 = ImageTk.PhotoImage(Image.open('ileye.png'))
top = Toplevel()
top.title('Login')
top.configure(background='grey')
photo = Label(top, image=image1)
photo.pack()
user = Label(top, text='User name', bg='grey')
user.pack()
ent1 = Entry(top, bg='grey')
ent1.pack()
pwd = Label(top, text='Password', bg='grey')
pwd.pack()
ent2 = Entry(top, show='*', bg='grey')
ent2.bind('<Return>', login)
ent2.pack()
ex = Button(top, text='EXIT', command=root.quit)
ex.pack()
check = Checkbutton(top, text='Remember me', bg='grey')
check.pack()
root.title('Main Screen')
root.attributes('-zoomed', True)
menu_drop = Menu(root)
root.config(menu=menu_drop)
file = Menu(menu_drop)
menu_drop.add_cascade(label='Options', menu=file)
file.add_command(label='New', command=root.quit) ## New Function
client = Button(root, text='Client list')
file.add_separator()
file.add_command(label='Close App', command=root.quit)
client.bind('<Button-1>', client_data)
client.pack()
exi = Button(root, text='EXIT', command=root.quit)
exi.pack()
root.mainloop()