Я пытаюсь создать меню параметров в цикле, и количество меню параметров зависит от переменной. Поэтому я пытаюсь использовать exec в своем коде.
Я использовал следующее для передачи значения 'i', чтобы подключиться к какой переменной изменяется значение.
Но как только я вызываю трассировку, опция, которую я выбираю в меню параметров, не обновляется в окне меню параметров. Если я не вызываю функцию трассировки, она обновляется на дисплее.
trackProcessMenu - это функция обратного вызова.
Пожалуйста, дайте мне знать, где я совершаю ошибку.
Добавление моего кода:
for i in range(0,numOfLibFiles):
exec('self.processOptionMenuVar_%d = StringVar()'%i)
process_menu = ("ff","ss","tt","fff","sss","ttt")
exec('self.processOptionMenu_%d = OptionMenu(self, self.processOptionMenuVar_%d, *process_menu )'%(i,i))
exec('self.processOptionMenu_%d.config(indicatoron=0,compound=RIGHT,image= self.downArrowImage, anchor = CENTER , direction = RIGHT)'%i)
exec('self.processOptionMenuVar_%d.set("--")'%i)
exec('self.processOptionMenu_%d.grid(row = i, column =1, sticky = N ,padx=30, pady =7 )'%i)
def trackProcessMenu(self,*args):
i = args[0]
exec('process = self.processOptionMenuVar_%d.get()'%i)