Функция обратного вызова Tkinter для отслеживания нескольких переменных - PullRequest
0 голосов
/ 30 марта 2020

У меня вопрос по методу трассировки для нескольких переменных. Я хочу отключить кнопку «Выполнить», когда StringVar является пустым значением. Я использовал метод трассировки, но он будет отслеживать только каждую переменную отдельно, но не учитывает комбинацию из двух. Например, в одном сценарии я изменяю два значения на пустые строки в виджете ввода, а затем я заменяю одно из них на число, а другое остается пустой строкой, в результате кнопка будет включена. Как я буду держать кнопку отключенной в этом сценарии?

self.var_5_x.trace("w", self.on_entry_trace_x)
self.var_3_y.trace("w", self.on_entry_trace_y)

def on_entry_trace_x(self, *args):

    new_state = "disabled" if self.var_5_x.get() == "" else "normal"
    self.button_1.configure(state=new_state)

def on_entry_trace_y(self, *args):

    new_state = "disabled" if self.var_3_y.get() == "" else "normal"
    self.button_1.configure(state=new_state)
...