Как обратиться к Tkinter из второго потока?
Есть бот вк, который работает во втором потоке. При написании определённой команды должна выполняться функция, которая связана с Tkinter. Но у меня ничего не выходит, т.к. выходит ошибка: Calling Tcl from different apartment. Что с этим делать?
PS Для многопоточности использую модуль threading
Ответы (1 шт):
Автор решения: Sergey Gornostaev
→ Ссылка
Все библиотеки графического интерфейса не являются потокобезопасными. Соответственно, нельзя напрямую взаимодействовать с компонентами графического интерфейса из потока иного, чем тот, в котором запущен цикл событий. Правильный подход - это обмен событиями между потоками и передача данных через очередь. Пример можно посмотреть в этом ответе.