У меня есть класс фрейма входа, который я добавляю в корневое окно. То, что я хочу сделать, - это обнаружить, когда нажата кнопка из фрейма входа (помечена в коде как: #Detect login с именем пользователя и паролем и кнопкой quit нажмите здесь). Целью этого является сохранение ui, отделенного от метода аутентификации. Как мне это сделать? Спасибо заранее.TTK обнаружить кнопку нажмите
код выглядит следующим образом:
class LoginFrame(ttk.Frame):
def __init__(self, parent):
login_frame = ttk.Frame(parent)
login_frame.pack(pady=70)
logo = ttk.Label(login_frame, text="Login")
logo.grid(row=0, column=0, columnspan=2, pady=10)
username = ttk.Entry(login_frame)
username.grid(row=20, column=0, columnspan=2, padx=10, pady=10, sticky="ew")
password = ttk.Entry(login_frame)
password.configure(show="#")
password.grid(row=30, column=0, columnspan=2, padx=10, pady=10, sticky="ew")
login_btn = ttk.Button(login_frame, text="Login", command=self.authenticate)
login_btn.grid(row=40, column=0, columnspan=1, padx=10, pady=10, sticky="ew")
quit_btn = ttk.Button(login_frame, text="Quit", command=self.quit_app)
quit_btn.grid(row=40, column=1, columnspan=1, padx=10, pady=10, sticky="ew")
error_lbl = ttk.Label(login_frame, justify="center", foreground="#FF0000")
error_lbl.grid(row=50, column=0, columnspan=2, padx=10, pady=10, sticky="ew")
username.focus_set()
def authenticate(self):
#return login button is clicked with username and password
pass
def quit_app(self):
#return quit button is clicked
pass
root = Tk()
root.config(background="light grey")
root.resizable(width=False, height=False)
root.geometry("800x500")
lf = LoginFrame(root)
#Detect login with username and password and quit button click here
root.mainloop()
Есть ли причина, по которой вы не вызываете конструктор родительского класса в 'LoginFrame'? (например: 'ttk.Frame .__ init __ (self, parent)') –
Вы правы. он должен вызывать конструктор родительского класса. –