为什么我的Tkinter Python代码不能像我预期的那样工作?

时间:2017-06-06 18:45:29

标签: python user-interface tkinter

以下是代码:

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; (即使我输入了密码'进入输入框并按下按钮。我错过了什么?很有责任。

1 个答案:

答案 0 :(得分:3)

您忘了在passwordCorrect函数中设置main全局。您的main函数有自己的本地passwordCorrect变量,与全局变量不同。

如果您使用的是python 3,则可以将global passwordCorrect更改为nonlocal passwordCorrect,以便checkPassword函数使用main中定义的变量。