Как выйти из цикла?
Я проверяю значение индикатора выполнения, и если оно равно 100, я хочу выйти, чтобы завершенная загрузка не была напечатана дважды. Я не знаю, почему 100 появляется дважды, если я запрашиваю индикатор выполнения.
def callback(self,*args):
cmds.progressBar('progbar', edit=True, step=1)
if cmds.progressBar('progbar',q=True, progress=True)==100:
print "Finished Uploading."
break
Я нашел похожую тему, но сценарий в моем случае немного отличается...
1 ответ
Вы не предоставили достаточный образец своего кода, чтобы помочь вам. Прежде всего, ваша функция callback() содержит оператор break, хотя в этой функции фактически нет цикла.
В любом случае, я написал следующий пример для проверки, и он на самом деле печатает "Законченная загрузка" только один раз, когда достигается 100.
import maya.cmds as cmds
cmds.progressBar('progressBar') # initialise the progress bar
def callback():
# Begin loop from 0 to 100 - remember range(n) returns numbers from 0 (inclusive) to n (exclusive)
for i in range(101):
cmds.progressBar('progressBar', edit=True, step=1) # increase step by 1
if (cmds.progressBar('progressBar',q=True, progress=True)==100):
print "Finished Uploading."
break
# Theoretically, breaking is simply here so that you stop wasting iterations in some cases,
# but it's not necessary for the printout, since we have only specified that the print will
# happen when the progress value is equal to exactly 100.
# Finally, if there is NO loop (like the code you pasted originally), then you shouldn't have
# a break.
callback()
Возможная причина вашей проблемы заключается в том, что вы превысили 100 шагов прогресса для вашего индикатора выполнения, и что максимальное значение индикатора выполнения равно 100. В этом случае, если вы продолжаете увеличивать количество шагов, значение останется равным 100 (что является максимум) и, следовательно, каждый раз, когда вы запрашиваете, равняется ли он 100, он возвращает True.
К сожалению, я не могу ответить на что-то более конкретное без более конкретной информации с вашей стороны.