Запустите функцию python параллельно из приложения kivy и обновите метку - PullRequest
0 голосов
/ 22 января 2019

Мне нужно запустить функцию из python fileA, которая обновит метку в приложении kivy.

Например, в python fileA я запускаю функцию сканера, которая в основном сначала запускает датчики, а затем начинает сканирование. Затем, после завершения сканирования, он снова начинает сканирование. В основном бесконечный цикл.

Теперь в kivy, если я запускаю эту функцию с помощью from fileA import scFun, а затем scFun.init(), функция init запускается, но пользовательский интерфейс блокируется.

Как запустить функцию параллельно и обновить метку в приложении kivy после завершения сканирования.

1 Ответ

0 голосов
/ 22 января 2019

Просто запустите функцию из класса kivy (контейнера) в отдельном потоке, используя библиотеку потоков. Часы для простой задачи, которая не блокирует ваш основной поток. Это на самом деле основной поток. Запрос блокируется.

Мой совет, так как я пересмотрел ваш упомянутый код, чтобы сделать всю логику в вашем макете контейнера контейнера. Это родитель всех, и вы можете получить доступ ко всем виджетам оттуда.

Возможно, лучше всего будет расписание часов, которое будет запускать функцию через интервалы, которые будут запускать желаемую функцию в потоке.

...