newtonioapple
@newtonioapple
футболист , контент-мейкер , кодер

Код не работает до опр. момента, что делать?

Не знаю , как написать название вопроса.
У меня есть код , на расстояние пройденное мышкой. Там есть 2 момента.
1 это root.mainloop(), чтобы появилось окно customtkinter и 2,
tracker = MouseDistanceTracker() 
tracker.start_tracking()
. 2 требуется , чтобы выводилось в консоль пройденное расстояние (пока так). И если я сделаю сначала 1 пункт , а потом второй , то в консоль будет выводиться расстояние с того момента , когда я закрою графическое окно. Если наоборот , то окна вообще не будет, но будет отображение расстояния. Как сделать чтоб работало вместе?
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
1. Осознать, что и тот, и другой код полностью занимает поток, в котором он запущен.
2. Почитать, как работать с многопоточностью - особенно то, что касается работы с одним объектом из нескольких потоков (мьютексы, очереди и т.п.)
3. Запустить трекер в отдельном потоке, затем запустить GUI в главном потоке.

Альтенативно - переписать трекер, чтобы вместо while True: ... time.sleep() там был метод, который надо периодически вызывать, и вызывать его используя метод after() в ткинтере. Тогда всё будет работать в одном потоке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
27 апр. 2024, в 17:31
150000 руб./за проект
27 апр. 2024, в 16:39
1000 руб./в час
27 апр. 2024, в 16:38
30000 руб./за проект