我正在尝试允许用户输入五个值,单击按钮完成这些值,然后将这些值写入文件。代码:
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
“”“但是,当我运行此命令时,出现一个错误,说明全局数据变量未定义。”“”
好的,您已经创建了一个全局变量,但是需要在所有要使用它的函数中将它定义为全局变量(这样python就知道您希望使用这个全局变量,而不是另一个它无意中找不到的同名局部变量)。另外,您正在创建变量,例如
finalize
,然后将它们放在同一行上,因此它们将返回Nonetype
,您必须将它们放在下一行上,例如要解决问题,必须将此行添加到
mb_add
函数中:希望有帮助!你知道吗
相关问题 更多 >
编程相关推荐