[Tkinter] Tkinter button help and general commands - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: GUI (https://python-forum.io/forum-10.html) +--- Thread: [Tkinter] Tkinter button help and general commands (/thread-20825.html) |
Tkinter button help and general commands - Iceman - Sep-01-2019 Hey guys, sorry this is gonna be a long thread and I'm very basic at python and tkinter, so just stay with me . So im trying to make a login window, and i have coded this, which makes the window but the button doesn't work and i don't really understand .self command: import tkinter window = tkinter.Tk() window.geometry('250x190') window.title("Encrypter") U = tkinter.Label(window, text = "Username", height = 4) U.grid(row = 1, column = 0, padx =1, pady = 1) UE = tkinter.Entry(window, width = 20) UE.grid(row = 1, column = 1, padx = 1, pady = 1) P = tkinter.Label(window, text = "Password") P.grid(row = 2, column = 0, padx = 1, pady = 1) PE = tkinter.Entry(window) PE.grid(row = 2, column = 1 , padx = 1, pady = 1) EB = tkinter.Button(window, text = "Validate ID", fg = "white", bg = "red") EB.grid(row = 3, column = 1 , padx = 1, pady = 1) CB = tkinter.Checkbutton(window, text = "keep logged in") CB.grid(columnspan = 2) def tkinter_button_clicked(self): # print("Clicked") username = UE.get() password = PE.get() # print(username, password) if username == "iceman" and password == "Password": tm.showinfo("Login info", "Welcome Iceman") else: tm.showerror("Login error", "Incorrect username") window.mainloop()I've looked at another person's example and it works but im trying to learn myself, but here's theirs: from tkinter import * import tkinter.messagebox as tm class LoginFrame(Frame): def __init__(self, master): super().__init__(master) self.label_username = Label(self, text="Username") self.label_password = Label(self, text="Password") self.entry_username = Entry(self) self.entry_password = Entry(self, show="*") self.label_username.grid(row=0, sticky=E) self.label_password.grid(row=1, sticky=E) self.entry_username.grid(row=0, column=1) self.entry_password.grid(row=1, column=1) self.checkbox = Checkbutton(self, text="Keep me logged in") self.checkbox.grid(columnspan=2) self.logbtn = Button(self, text="Login", command=self._login_btn_clicked) self.logbtn.grid(columnspan=2) self.pack() def _login_btn_clicked(self): # print("Clicked") username = self.entry_username.get() password = self.entry_password.get() # print(username, password) if username == "Iceman" and password == "Password": tm.showinfo("Login info", "Welcome Iceman") else: tm.showerror("Login error", "Incorrect username") root = Tk() lf = LoginFrame(root) root.mainloop()If you made it this far welldone and thanks for any help. RE: Tkinter button help and general commands - Yoriz - Sep-01-2019 The button has not had an event bound to it by setting the callback function on the command parameter. self is not required when using the function outside of a class as its no longer a method. The called function will need to be moved so it is defined before trying to add it to the command parameter. tkinter.messagebox will need importing before you can use it.
|