![](/img/trans.png)
[英]tkinter - I'm trying to disable the forward / backward button but it doesn't seem to work
[英]Trying to create a login page using tkinter in python, doesn't seem to work
以下代碼是我正在處理的代碼,我試圖創建一個登錄頁面並驗證用戶名和密碼。 理想情況下,當我單擊“提交”按鈕時應調用loginValidate函數,但即使在我這樣做之前,也應調用該函數。 同樣,user_login和pwd_login值似乎沒有傳遞給函數loginvalidate。 請幫助我解決問題。
import tkinter as tk
import tkinter.messagebox as tm
from tkinter import *
import sys
FONTT = ("Times", "12", "bold italic")
class myApp(tk.Tk):
def __init__(self,*args,**kwargs):
tk.Tk.__init__(self,*args,**kwargs)
container = tk.Frame(self)
container.pack(side = "top", fill = "both", expand = True)
container.grid_rowconfigure(0,weight = 1)
container.grid_columnconfigure(0,weight = 1)
self.frames = {}
frame = LoginPage(container,self)
self.frames[LoginPage] = frame
frame.grid(row = 0,column = 0,sticky = "nsew")
self.show_frame(LoginPage)
def show_frame(self,cont):
frame = self.frames[cont]
frame.tkraise()
def loginValidate(user,pwd):
if(user == "yogesh" and pwd == "123456"):
print("1")
else:
print("2")
tm.showerror("Login error", "Incorrect username or password")
class LoginPage(tk.Frame):
def __init__(self,parent,controller):
tk.Frame.__init__(self,parent)
usr_login = StringVar()
pwd_login = StringVar()
userLabel = tk.Label(self,text = "Name",font = FONTT )
passwordLabel = tk.Label(self,text = "Password", font = FONTT)
userEntry = tk.Entry(self, textvariable = usr_login, bd=5)
passwordEntry = tk.Entry(self, textvariable=pwd_login,bd=5,show = "*")
submitButton = tk.Button(self,text = "Login",command = lambda: loginValidate(usr_login.get(),pwd_login.get()))
quitButton = tk.Button(self,text = "Quit",command =lambda: app.destroy)
userLabel.grid(row = 0,sticky = "E",padx =10,pady =10)
passwordLabel.grid(row =1,sticky = "E",padx =10,pady =10)
userEntry.grid(row=0,column=1,padx =10,pady =10)
passwordEntry.grid(row=1,column=1,padx =10,pady =10)
submitButton.grid(row =2,column =1,padx =10,pady =10)
quitButton.grid(row=2,column=2,padx =10,pady =10)
app = myApp()
app.mainloop()
查看您為命令傳遞的內容:
loginValidate(usr_login.get(),pwd_login.get())
您正在調用該函數並傳遞該函數作為命令返回的內容。
簡單修復=使用lambda
lambda: loginValidate(usr_login.get(), pwd_login.get())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.