Есть ли способ обернуть графический интерфейс tkinter в класс, который может быть создан и взаимодействовать с другим объектом? Чтобы это было действительно полезно, класс должен работать так, чтобы mainloop или его эквивалент не содержали приложение. Если так, может кто-нибудь указать мне на рабочий пример?
Для контекста я пытаюсь создать класс SimpleUI, который я могу использовать в любом приложении, чтобы позволить ему отображать информацию или регистрировать функции, выполняемые при нажатии кнопок или клавиш. Поэтому любые потоки, очереди и т. Д. Я бы хотел скрыть в классе SimpleUI.
Исходя из того, что я собрал после прочтения, ответ - Нет, без повторной реализации mainloop Скорее, GUI должен быть основным приложением, которое обрабатывает работу тем или иным методом. Тем не менее, это может привести к тому, что любое приложение с tkinter (возможно, также с другими графическими интерфейсами?) Почувствует, что хвост виляет собакой. Надеюсь, я неправильно понял, что я читаю.
Я знаю, что это может показаться повторением этого и других подобных вопросов, но я не могу комментировать эти вопросы, и ответы, кажется, делают противоположное тому, что я хочу сделать. В дополнение к этому вопросу я нашел фрагменты связанного кода во многих местах, но я не смог собрать их вместе. Если есть способ, я изучу потоки Python или что-то еще, чтобы он работал.
Я использую Python 3.1, если это имеет какое-либо значение.
Пример того, как бы я хотел, чтобы это работало.
ui = SimpleUI()
ui.hide()
ui.show()
ui.add_frame...
ui.add_button...
ui.register_function(button, function)