Time.sleep () влияет на код над ним в Python - PullRequest
0 голосов
/ 01 декабря 2019

Я делаю программу KIVY на python, и в моем коде есть time.sleep (3), так что он ждет три секунды, прежде чем менять экран. Но функция над ней работает через 3 секунды, а не до нее. У меня нет ошибок, и я попробовал все, но ничего не работает. Вот фрагмент кода.

def input_button(self, instance): # creating the button that when pressed updates the label
    query = "You Said {}".format(self.command()) # making the query
    if query == "You Said None":
        self.update_info('Please input a command')
    else:
        self.update_info(query) # updating the label
        time.sleep(3)
        pa_app.screen_manager.current = "Result"

self.update_info (запрос) запускается через три секунды, но time.sleep идет после него.

1 Ответ

0 голосов
/ 01 декабря 2019

Kivy - это структура графического интерфейса, и вы не можете безопасно добавлять операторы сна.

, когда вызывается

self.update_info(query)

, kivy обновит графический интерфейс только после вызова последней строки вашей функции,потому что это когда вы возвращаете управление движку Kivy GUI.

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

pa_app.screen_manager.current = "Result"

каждый раз, когда таймер завершает работу.

...