2016-12-07 127 views
0

我做了一个代码来模拟ATM接口,但是第二阶段似乎有一个错误。 第一步:请创建/选择开户的银行 第二步:选择“创建”时,转到变形点焊创建账户:这将打开 第三步:输入帐号:(?变量中使用似乎是不确定的)错误 我没有看到这个问题,也许我是盲目的,但我没有看到什么可能导致错误。为什么是我的变量:userAnswer总是回来undefined。Python,tkinter弹出窗口错误

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

看这句话:number = userAnswer.get()

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

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