2014-11-04 21 views
-1

我试图让用户输入五个值,单击一个按钮来完成这些值,然后写这些值的文件。代码:无法从Tkinter的输入数据()

def mb_add_gui(self): 

    self.optionsLabel.grid_forget() 



    global a,b,c,d,e 


    a = StringVar() 
    b = StringVar() 
    c = StringVar() 
    d = StringVar() 
    e = StringVar() 


    add_gui_entry_brand = Entry(self.startLabel, textvariable=a).grid(row=0, column=1) 
    add_gui_entry_model = Entry(self.startLabel, textvariable=b).grid(row=1, column=1) 
    add_gui_entry_serial = Entry(self.startLabel, textvariable=c).grid(row=2,column=1) 
    add_gui_entry_work = Entry(self.startLabel, textvariable=d).grid(row=3, column=1) 
    add_gui_entry_ram = Entry(self.startLabel,textvariable=e).grid(row=4, column=1) 
    add_gui_entry_brand_text = Label(self.startLabel, text="Brand:").grid(row=0, column=0) 
    add_gui_entry_model_text = Label(self.startLabel, text="Model:").grid(row=1, column=0) 
    add_gui_entry_serial_text = Label(self.startLabel, text="Serial Number:").grid(row=2, column=0) 
    add_gui_entry_work_text = Label(self.startLabel, text="Is it working?:").grid(row=3, column=0) 
    add_gui_entry_ram_text = Label(self.startLabel, text="RAM Type:").grid(row=4, column=0) 

    def final_data(): 
     global data 
     data = [a.get(), b.get(),c.get(),d.get(),e.get()] 
     return data 

    finalize = Button(self.startLabel, text="Add!", command=final_data).grid(row=5, columnspan=2) 

“”“允许添加主板的”“”

def mb_add(): 


    with open("motherboards.txt", "a") as file: 


     file.write("{0}, {1}, {2}, {3}, {4}".format(data[0].upper(), data[1].upper(), data[2].upper(), data[3].upper(), data[4].upper())) 
     file.write("\n") 
     print("Motherboard added!") 
     file.flush() 
     file.close() 
    return 

“”“然而,当我运行它,我得到一个错误说,全球​​数据变量未定义

回答

0

好了,所以你已经创建了一个全局变量,但需要在所有你想使用它的功能将其定义为全球(所以Python知道你希望使用全局变量,而不是另一个同名的本地变量,它偶然找不到)。你也在创建你的变量,例如finalize,然后将它们放在同一行上,因此它们将返回Nonetype,您必须将它们放在下一行,例如

finalize = Button(self.startLabel, text="Add!", command=final_data) 
finalize.grid() 

解决你的问题,你必须将此行添加到您mb_add功能:

global data 

希望帮助!

相关问题