以下是代码:
from tkinter import *
def main():
pw = ''
passwordCorrect = False
window = Tk()
instructionLabel = Label(window,text='Enter your password:')
entryBox = Entry(window)
def checkPassword():
if entryBox.get() == 'password':
global passwordCorrect
passwordCorrect = True
confirmButton = Button(window,text='Confirm',command=checkPassword)
instructionLabel.pack()
entryBox.pack()
confirmButton.pack()
window.mainloop()
if passwordCorrect:
print('Access granted')
else:
print('Access denied')
main()
当我关闭窗口时,我总是收到消息“拒绝访问”#39; (即使我输入了密码'进入输入框并按下按钮。我错过了什么?很有责任。
答案 0 :(得分:3)
您忘了在passwordCorrect
函数中设置main
全局。您的main
函数有自己的本地passwordCorrect
变量,与全局变量不同。
如果您使用的是python 3,则可以将global passwordCorrect
更改为nonlocal passwordCorrect
,以便checkPassword
函数使用main
中定义的变量。