Изменение окна customtkinter
Пытаюсь сделать так, чтобы окно менялось при нажатии на кнопку Регистрации, но пока получилось только новое окно открывать,подскажите пожалуйста, как можно сделать так, чтобы менялся сам интерфейс, то-есть кнопки и т.д. Вот код:
import tkinter
import customtkinter
import customtkinter as ctk
mode = 'log'
customtkinter.set_appearance_mode("Dark")
customtkinter.set_default_color_theme("blue")
class App(ctk.CTk):
def __init__(self):
if mode == 'log':
super().__init__()
x = (self.winfo_screenwidth() - self.winfo_reqwidth()) / 2.7
y = (self.winfo_screenheight() - self.winfo_reqheight()) / 2.7
self.wm_geometry("+%d+%d" % (x, y))
self.geometry('460x370')
self.title('Авторизация')
self.resizable(False, False)
self.loginbtn = ctk.CTkButton(master=self, fg_color="#448ec9", border_width=2, text_color=("gray10", "#DCE4EE"),
text='Войти', command=self.loginbtncheck)
self.loginbtn.grid(row=5, column=2, padx=(150, 20), pady=(00, 20), sticky="nsew")
self.registerwinbtn = ctk.CTkButton(master=self, fg_color="#1883db", border_width=2, text_color=("gray10", "#DCE4EE"),
text='Регистрация', command=regfunc)
self.registerwinbtn.grid(row=6, column=2, padx=(150, 20), pady=(00, 20), sticky="nsew")
#self.logo = CTk.CTkImage()
self.entrylogin = customtkinter.CTkEntry(self, placeholder_text="Логин:")
self.entrylogin.grid(row=3, column=2, columnspan=2, padx=(130, 0), pady=(80, 20), sticky="nsew")
self.entrypass = customtkinter.CTkEntry(self, placeholder_text="Пароль:", show='*')
self.entrypass.grid(row=4, column=2, columnspan=2, padx=(130, 0), pady=(00, 20), sticky="nsew")
if mode == 'reg':
super().__init__()
x = (self.winfo_screenwidth() - self.winfo_reqwidth()) / 2.7
y = (self.winfo_screenheight() - self.winfo_reqheight()) / 2.7
self.wm_geometry("+%d+%d" % (x, y))
self.geometry('460x370')
self.title('Регистрация')
self.resizable(False, False)
self.loginbtn = ctk.CTkButton(master=self, fg_color="#448ec9", border_width=2, text_color=("gray10", "#DCE4EE"),
text='Войти', command=self.loginbtncheck)
self.loginbtn.grid(row=6, column=2, padx=(150, 20), pady=(00, 20), sticky="nsew")
#Кнопка регистрации
self.registerwinbtn = ctk.CTkButton(master=self, fg_color="#1883db", border_width=2, text_color=("gray10", "#DCE4EE"),
text='Регистрация', command=regfunc)
self.registerwinbtn.grid(row=7, column=2, padx=(150, 20), pady=(00, 20), sticky="nsew")
#Строки ввода
self.entrylogin = customtkinter.CTkEntry(self, placeholder_text="Логин:")
self.entrylogin.grid(row=3, column=2, columnspan=2, padx=(130, 0), pady=(80, 20), sticky="nsew")
self.entrypass1 = customtkinter.CTkEntry(self, placeholder_text="Пароль:", show='*')
self.entrypass1.grid(row=4, column=2, columnspan=2, padx=(130, 0), pady=(00, 20), sticky="nsew")
self.entrypass2 = customtkinter.CTkEntry(self, placeholder_text="Подтвердите пароль:", show='*')
self.entrypass2.grid(row=5, column=2, columnspan=2, padx=(130, 0), pady=(00, 20), sticky="nsew")
def loginbtncheck(self):
login = self.entrylogin.get()
password = self.entrypass.get()
if login == 'username' and password == 'password':
#Open file
exit()
else:
label = customtkinter.CTkLabel(master=self,
text="Неверный логин/пароль!", width=120, height=25, corner_radius=8)
label.place(relx=0.477, rely=0.1, anchor=tkinter.CENTER)
def regfunc():
global mode
mode = 'reg'
app = App()
app.mainloop()
if __name__ == '__main__':
app = App()
app.mainloop()
Источник: Stack Overflow на русском