Python Tkinter主循环中断,消息框不断弹出
代码似乎不起作用。消息框将立即弹出。然后“回车”按钮不起作用。不知道怎么了。我是OOP新手,所以不确定这是否与此有关 另外一个问题是,我如何将一个变量从一个窗口/类的输入框传递到另一个窗口/类?全局是一个可行的选项,还是有更好的方法可以从输入框中使用.get() 感谢您的帮助当您使用Python Tkinter主循环中断,消息框不断弹出,python,tkinter,widget,messagebox,mainloop,Python,Tkinter,Widget,Messagebox,Mainloop,代码似乎不起作用。消息框将立即弹出。然后“回车”按钮不起作用。不知道怎么了。我是OOP新手,所以不确定这是否与此有关 另外一个问题是,我如何将一个变量从一个窗口/类的输入框传递到另一个窗口/类?全局是一个可行的选项,还是有更好的方法可以从输入框中使用.get() 感谢您的帮助当您使用()时,您将立即调用该函数。当你把()与一个按钮一起使用时,它破坏了拥有一个按钮本身的目的。所以去掉括号,() 调用该函数时,条目中的值为空,因此会触发else。这将修复此问题,谢谢:)@CoolCloud:重新回答
()
时,您将立即调用该函数。当你把()
与一个按钮一起使用时,它破坏了拥有一个按钮本身的目的。所以去掉括号,()
调用该函数时,条目中的值为空,因此会触发
else
。这将修复此问题,谢谢:)@CoolCloud:重新回答重复的问题并不是提升代表性的最佳方式。@CoolCloud是的,你回答得太快了,我不得不等5分钟:)@martineau大多数时候回答这个问题比较容易。我认为这是stackoverflow的一个缺陷。我能想到的唯一解决办法就是建立一个网站,上面有我能把最常见的tkinter错误都记录下来。@martineau Lazness?我的意思是,除了回答问题和寻找复制品,我们都有自己的工作,对吗?我确实在某个地方复制了所有这些,但我在系统重置时也丢失了所有这些。我们可以忽略这个问题,等待其他人也将其标记为重复。但我不认为忽视和希望是最好的做法。
class StartUp():
def __init__(self):
pass
def verify(self):
username = ("s")
password = ("s")
usernameEntry = usernameVar.get()
passwordEntry = passVar.get()
start = StartUp()
if usernameEntry == username and passwordEntry == password:
start.login()
else:
#messagebox.showerror("Error","Wrong Credentials")
def login(self):
#Create a window
global usernameVar, passVar
verify = StartUp()
window = Tk()
window.title("Login")
userPassLabel = Label(window, font="Helvetica 18 bold", text="Royal Mail")
userPassLabel.grid(row=0, column=0, sticky=W)
usernameVar = StringVar()
usernameLabel = Label(window, font="Arial", text="Username:")
usernameLabel.grid(row=1, column=0, sticky=W)
usernameEntry= Entry(window, width=30, bg="light blue",textvariable = usernameVar, )
usernameEntry.grid(row=1, column=1, sticky=W)
passVar = StringVar()
passLabel = Label(window, font="Arial", text="Password:")
passLabel.grid(row=2, column=0, sticky=W)
passEntry= Entry(window, width=30, bg="light blue",textvariable = passVar, show ="●")
passEntry.grid(row=2, column=1, sticky=W)
b1= Button(window, text="Enter", command=verify.verify())
b1.grid(row=3, column=0, sticky=W)
window.mainloop()
start = StartUp()
start.login()
b1 = Button(window, text="Enter", command=verify.verify)