Python,tkinter弹出窗口错误

时间:2016-12-07 03:38:14

标签: python input tkinter

我制作了一个模拟ATM接口的代码,但第二阶段似乎有一个bug。 第1步:要求创建/选择银行账户 第二步:选择"创建"它转到def 创建帐户:打开 步骤3:输入帐号:错误(使用的变量似乎未定义?) 我没有看到问题,也许我是盲目但我没有看到可能导致错误的原因。为什么我的变量:userAnswer总是返回undefined。

import tkinter

x=''
bankList = ['100','101','102','103','104','105','106','107','108','109']



def checkAccount():
    number = userAnswer.get()
    if number == '1':#in bankList:
        print("That Account already exist, try another number.")
    else:
        bankList.append(number)
        print("Your new account has been created!")

def createAccount():
    window2 = tkinter.Tk()
    window2.title("Creating an Account!")
    window2.geometry("400x100")

    accountLabel = tkinter.Label(window2, text="Please input the 3 digit number for the Account: ")
    userAnswer = tkinter.Entry(window2)
    accountButton = tkinter.Button(window2, text="Go", command=checkAccount)

    accountLabel.pack()
    userAnswer.pack()
    accountButton.pack()


def selectAccount():
    print("nope")


#------------------------- Opening Text Box: Create / Choose Account
window = tkinter.Tk()
window.title("ATM - Inovated Online Banking")
window.geometry("400x100")

label = tkinter.Label(window, text="Thank you for using online Banking Canada. Howe can we help you?")
button = tkinter.Button(window, text="Create Account", command=createAccount)
button2 = tkinter.Button(window, text="Select Account",   command=selectAccount) 

label.pack()
button.pack()
button2.pack()

1 个答案:

答案 0 :(得分:1)

请看这一行:number = userAnswer.get()

这是createAccount功能的本地功能。您可以重新构造,将其作为参数传递,或以其他各种方式传递。

此外,您永远不应该有tk.Tk()的两个实例。所以,你应该重组。如果你真的想要一个新窗口,你可以使用tk.Toplevel