У меня есть просмотрел все сообщения здесь, в которых обсуждается индикатор выполнения и запланированные события Clock. Я опробовал эти методы, но все равно не могу добиться желаемого эффекта.
В моем основном классе виджетов определены следующие методы:
Код: Выделить всё
def update_progbar(self):
print(self.progbar.value)
self.progbar.value += 10.0
Код: Выделить всё
def start_progbar_update(self):
print("start progbar update")
self.update_progbar_event = Clock.schedule_interval(lambda dt: self.update_progbar(),1)
Код: Выделить всё
def stop_progbar_update(self):
print("stop progbar update")
self.update_progbar_event.cancel()
Код: Выделить всё
def run_program(self):
if self.progbar.value < 100.0:
self.start_progbar_update()
elif self.progbar.value >= 100.0:
self.stop_progbar_update()
#wait for progress bar to fill up, then execute code below
results = some_function(args)
Начало прогресса Обновление бара работает. Я вижу, что виджет индикатора выполнения заполняется на 10% каждую секунду. Но после того, как он достигнет 100%, он продолжает работать, продолжает печатать «100.0» и никогда не завершает работу.
Кажется, я не могу получить условие, если progbar.value >= 100.0: stop_progbar_update () для работы. Событие «Интервал расписания часов» никогда не отменяется.
Код ниже никогда не сможет выполниться.
Подробнее здесь: https://stackoverflow.com/questions/792 ... other-code