Я сейчас работаю над проектом, и мне нужна помощь. Я сделал отдельные классы, которые включают разные фреймы, которые ведут на разные страницы в пределах GUI. Я пытаюсь вызвать функцию, которая была определена в другом классе в проекте. Тем не менее, ошибка, которая продолжает появляться, заключается в том, что мне нужно определить его в этом классе. Фон этой функции - система входа в систему. Как только пользователь введет правильные данные, они будут перенаправлены в другое окно. Более того, я не могу вызвать эту функцию и не знаю, как это исправить.
Однако у меня также возникают проблемы с изменением размера основного главного окна GUI2. Главное окно. Я перепробовал много методов, но, похоже, ничто не влияет на окно.
Вот код:
class GUI(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
self.title_font = tkfont.Font(family='Century Gothic', size=20)
container = tk.Frame(self)
container.pack(side="top", fill="both", expand=False)
container.rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
for F in (GUI2, Login, PageTwo, LoginSuccessful):
page_name = F.__name__
frame = F(parent=container, controller=self)
self.frames[page_name] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame("GUI2")
class Login(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
label = tk.Label(self, text="Please enter your deatils below to login into our voting system",
font=controller.title_font)
label.pack(side="top", fill="x", pady=10)
label = tk.Label(self, text="Username:",
font=controller.title_font)
label.pack(side="top", fill="x", pady=10)
self.username = Entry(self, width=20)
self.username.pack()
label = tk.Label(self, text="Password:",
font=controller.title_font)
label.pack(side="top", fill="x", pady=10)
self.password = Entry(self, show="*", width=20)
self.password.pack()
label = tk.Label(self, text="", )
label.pack(side="top", fill="x", pady=10)
self.text_btn = tk.Button(self, text="Login", height="2", width="30",
command=lambda: self.verify()).pack()
button = tk.Button(self, text="Back", height="2", width="20",
command=lambda: controller.show_frame("GUI2"))
label = tk.Label(self, text="", )
label.pack(side="top", fill="x", pady=10)
button.pack()
self.users = {}
with open("StudentVotersFinal.csv", "r") as file:
reader = csv.reader(file, delimiter=",")
for data in reader:
self.users[data[0]] = data[1]
tk.Label(self, text="", ).pack()
def login(self):
return self.users.get(self.username.get()) == self.password.get()
def verify(self):
verified = self.login()
if verified:
print("logged in")
else:
msg.showerror("Error message", "You are not eligible to vote in this election")
class LoginSuccessful(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
label = tk.Label(self, text="View Candidates", font=controller.title_font)
label.pack(side="top", fill="x", pady=10)
button = tk.Button(self, text="Go to the start page",
command=lambda: controller.show_frame("GUI2"))
button.pack()