名称'entry_widget'没有定义?

时间:2017-01-19 20:11:28

标签: python python-3.x tkinter

我只是写了一个程序,它应该让我能够用一个大窗口“锁定”我的屏幕作为我的屏幕分辨率,如果没有给出正确的密码则无法关闭。 所以我的问题是: 我在主窗口上有一个按钮,它创建了第二个窗口和它的小部件。我在第二个窗口上有第二个按钮,它应该在第一个窗口上的第一个按钮创建的第二个窗口上获得给定密码prom的Entry小部件。 当我点击第二个窗口上的第二个按钮时,它无法从第二个窗口的条目小部件中获取文本。

def locking():
    password_box["state"] = "disabled"
    true_password = password_box.get()
    lock = Tk()
    lock.configure(bg="grey")
    lock.geometry(resolution)
    lock.wm_attributes("-topmost", 1)
    lock.resizable("False", "False")
    lock.overrideredirect(1)

    lock_password_box = Entry(lock, 
                              width="30",
                              justify="center",
                              show="*")
    unlock_button = Button(lock,
                           text="       Unlock       ",
                           command=unlocking)

    lock_password_box = Entry(lock,    # HERE THE WIDGET WHICH CAN NOT BE FOUND 
                              width="30",
                              justify="center", 
                              show="*")

    res_x_int = int(res_x)
    res_y_int = int(res_y)

    middle_x = res_x_int / 2
    middle_y = res_y_int / 2      

    middle_x_box = middle_x - 130
    middle_y_box = middle_y - 40

    middle_x_button = middle_x - 80
    middle_y_button = middle_y 

    lock_password_box.place(x=str(middle_x_box), y=(middle_y_box))
    unlock_button.place(x=str(middle_x_button), y=(middle_y_button)) 




def unlocking():
    given_password = lock_password_box.get()    # HERE I CALL IT

    if given_password.startswith("__commmand"):
        if given_password[11:] == "unlock":
            lock.destroy()
            password_box["state"] = "enabled"

        else:
            lock_password_box.insert("")

    elif given_password == true_password:
        lock.destroy()
        password_box["state"] = "enabled"

    else:
        lock_password_box.insert("") 

# AND FINALLY THE ERROR

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\mbilal25tr\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 1699, in __call__
    return self.func(*args)
  File "C:\Users\mbilal25tr\Desktop\project.pyw", line 53, in unlocking
    given_password = lock_password_box.get()
NameError: name 'lock_password_box' is not defined

脚本(不长):https://drive.google.com/open?id=0B2caa1PPqDe8NWR1aFYxd09tVzA

我真的不明白为什么会这样。如果有人可以,请帮助。不管怎样,谢谢。

0 个答案:

没有答案