我有以下代码,我要求用户打开一个文本,该文本可以在一段数据中包含几行。
然后,我需要为每一行创建一个 OptionMenu。我的问题是我需要为每个选项菜单做不同的事情,并将其仅应用于“网格”中的特定行。我不能这样做,因为我正在以相同的名称创建它们并且不明白如何做不同的事情。
with askopenfile(filetypes=[(".txt files","*.txt")], title='Import', mode='r') as f:
data_dict=parse_file(f)
info=data_dict['three']
i = 2
for row in info:
# Create row in 'table' for each output
no_1, code, value = row # Obtain results
def three( code ):
c = { "1" : "1",
"2" : "2",
"3" : "3" }
try:
return c[code]
except KeyError:
return "None"
variablelist = StringVar(self.frame_table)
variablelist.set("Fixed")
self.list1 = OptionMenu(self.frame_table, variablelist, "Fixed", "List", "Min", "Max", command=self.ChoiceBox)
self.list1.grid(row=i, column=6, sticky="nsew", padx=1, pady=1)
i = i + 1
例如,我想在第三行中的第二行旁边创建一个额外的框,但由于第三行是最后创建的,当我尝试获取网格信息时,我只能将它添加到第三行。
我这样做的原因是因为我并不总是知道行数,而且我不想创建很多代码行,每次都单独创建一个选项菜单(即使我确实知道行数)。