我的小登录窗口出现问题。我想为我的一个程序编写一个小的登录窗口,并带一个按钮来检查输入。程序运行正常,直到我的电脑想要启用按钮:
TypeError:' Tk'对象不可调用
为什么会这样?怎么了?所有命令都正确吗?
import tkinter
import os
def login():
c= tkinter.Entry.get(input1)
if c == "admin":
a = tkinter.Entry.get(input2)
if a == "1234":
os.system('SpambotV1')
else:
print("hi")
else:
print("Cancled")
# Hauptprogramm
login=tkinter.Tk()
login.title("login")
login.config(background="blue")
photo = tkinter.PhotoImage(file="/Users/Hannes/Desktop/Spambot/Roboter.gif")
w = tkinter.Label(login,image=photo)
w.grid(row=0,column=1,padx=0,pady=0)
#Loginframe
frame1=tkinter.Frame(login)
frame1.grid(row=0,column=0,padx=5,pady=5)
#loginlabel
text1=tkinter.Label(frame1,text="Please login", bg="red")
text1.grid(row=0,column=0,padx=5,pady=5)
#Input1
input1=tkinter.Entry(frame1,width=12)
input1.grid(row=2,column=0,padx=5,pady=5)
#text 2
text2=tkinter.Label(frame1,text="Username",bg="red")
text2.grid(row=1,column=0,padx=5,pady=5)
#text 3
text3=tkinter.Label(frame1,text="Password",bg="red")
text3.grid(row=3,column=0,padx=5,pady=5)
#Entry 2
input2=tkinter.Entry(frame1,width=12)
input2.grid(row=4,column=0,padx=5,pady=5)
#knopf
knopf=tkinter.Button(frame1,text="Login",bg="red",command=login())
knopf.grid(row=4,column=0,padx=10,pady=10)
答案 0 :(得分:2)
通过创建一个名为login的函数,然后创建一个具有相同名称的变量,会导致代码冲突。尝试将其重命名为submit
或其他内容。您将按钮的命令指定为login()
但是python不记得登录功能,它只记住您创建的窗口变量,这是一个Tk对象,并且不可调用。因此,您应该将login()
函数的名称更改为submit()
。
还要记得改变:
knopf=tkinter.Button(frame1,text="Login",bg="red",command=login())
为:
knopf=tkinter.Button(frame1,text="Login",bg="red",command=submit)
并删除括号@PM 2Ring建议 编辑: 让我们对@Rawing也给予一些信任。抱歉。我没有看到评论