Я добавляю некоторую функцию регистрации в мое приложение tkinter. В идеале функция сообщает имя переменной, которую она изменила, и значение, на которое она была изменена. Ниже приведен соответствующий код.
Здесь объявляются переменные экземпляра, которые я использую:
## priorityLevel
self.rbPriorityValue = StringVar()
self.rbPriority = None
self.rbMinor = None
Это устанавливает значения всего:
self.rbPriority = ttk.Radiobutton(cf, text="Priority", variable=self.rbPriorityValue, value="priority",
command=lambda: self.rbValueChanged(self.rbPriorityValue, self.rbPriority))
self.rbPriority.grid(row=21, column=0, sticky="w", padx=(indent, 0))
self.rbMinor = ttk.Radiobutton(cf, text="Minor", variable=self.rbPriorityValue, value="minor",
command=lambda: self.rbValueChanged(self.rbPriorityValue, self.rbMinor))
self.rbMinor.grid(row=22, column=0, sticky="w", padx=(indent, 0))
Это функция регистрации:
def rbValueChanged(self, radioValue, modifiedWidget):
print("The value of %s is:" % radioValue.__str__(), end="\t\t")
print(modifiedWidget.cget("value"))
#end rbValueChanged
Когда я выбираю переключатель, функция регистрации печатает «PY_VAR25» вместо «rbPriorityValue». Есть ли способ вернуть это, или PY_VAR25 - лучшее, что я могу получить?