Я сделал несколько поисков, но ничего не смог найти по этой теме. Возможно, потому что это общеизвестное знание программиста (я не программист, я учился по необходимости), или потому что я поступаю неправильно.
Я хотел бы получить идеи / предложения о том, как управлять состояниями кнопок для графического интерфейса. Например, если у меня есть программа, которая позволяет пользователю импортировать и обрабатывать данные, то определенные функции должны быть недоступны до тех пор, пока данные не будут успешно импортированы, или, если они хотят отобразить определенные данные, им необходимо выбрать, какие данные нужно отобразить перед нажимая кнопку «график» или «экспорт». Даже в простых программах, которые я построил, эти отношения быстро усложняются. Кажется простым сказать: «Пользователь не должен нажимать кнопку« A », пока« B »и« C »не будут завершены, тогда« A »следует отключить, если кнопка« D »или кнопка« Отмена ». это много для отслеживания одной кнопки. Пока я пробовал две вещи:
Изменение / проверка состояний кнопки в функциях обратного вызова для кнопки. Так что в приведенном выше примере у меня будет код в кнопках B и C для обратного вызова, чтобы проверить, следует ли включить A. А в обратных вызовах кнопок D и Cancel у меня был бы код для отключения кнопки A. Это быстро усложняется и его трудно поддерживать при изменении кода.
Установка логических переменных в каждом обратном вызове кнопок (или просто проверка состояний позже с помощью cget ()) и проверка переменных в функции опроса, чтобы определить, какие кнопки следует включить или отключить.
Я просто не уверен в этом. Я хотел бы сделать код максимально коротким и легким для понимания (и легким для редактирования позже), но мне не нравится идея опроса всех состояний кнопок каждые несколько сотен миллисекунд только для «управления» кнопками. Вы можете распространить ту же идею на флажки, пункты меню и т. Д. ... но я бы хотел здесь рассказать, что сделали другие и почему они делают это так, как делают.