0
以下代碼顯示了我的兩個選項菜單和回調函數'VarMenu'。這一切都工作得很好,除非我在每一行的循環中創建了幾個相同的選項菜單。當其中只有一個變爲'L'時,我只希望單元選項菜單的相應行更改爲'N',而不是其中的每一個。在循環中更改單個OptionMenu的文本變量Tkinter
我不想將事情與列表或巨大的代碼行混淆,但如果我創建了一個列表self.type = []會工作嗎?
預先感謝您!
def VarMenu(self, selection):
if selection == "L":
self.variableunit.set("N")
self.unit.config(state=DISABLED)
else:
self.variableunit.set("mm")
self.unit.config(state=NORMAL)
def import_file(self): # Not complete code
for row_number, row_data in enumerate(info):
self.variable = StringVar(self.frame_table)
self.variable.set(pre(code))
self.type = OptionMenu(self.frame_table, self.variable, "None", "Clear", "F", "L", command=self.VarMenu)
self.type.grid(row=row_number+i, column=3, sticky="nsew", padx=1, pady=1)
# Unit drop down menu
self.unit = OptionMenu(self.frame_table, self.variableunit, "mm", "N")
self.unit.grid(row=row_number+i, column=5, sticky="nsew", padx=1, pady=1)
謝謝。我明白這是如何工作的,我一直在尋找更多的lambda,所以這是有道理的。但是,我必須爲第二個選項菜單創建一個類似的事情來讓它們一起更改嗎? – user2063 2012-07-11 13:03:24
在這個例子中new_value對應什麼?我試圖合併變量單位,但它不適用於其他菜單。 – user2063 2012-07-11 14:15:19
'new_value'是選項菜單的新值;它是由tkinter傳遞給命令的標準參數。它會一直通過,你無法控制。 – 2012-07-11 14:20:06