2016-01-25 2 views
0

Я делаю (простую) программу на Python, где я нажимаю кнопку, чтобы сбросить мяч, а затем мяч автоматически поднимается снова, на медленнее. Часть шариковой капли работает, но я не могу показаться, что это происходит.Приостановить цикл while, а не остальную часть моей программы в Python

Мой первый инстинкт сказал используя if. Но если только триггеры один раз, и я хочу, чтобы он срабатывал каждый раз, когда мяч падает. Кажется, я не мог сделать эту работу.

Моя вторая, хотя и использовала цикл while. Но, похоже, я не могу получить правильное время в цикле. Я не могу вызвать его за моей кнопкой, поэтому теперь я запускаю его внутри. Как это:

def callback1(): 
    global l1 
    w.move(cirkel1, 0, 20) 
    label1.configure(text=l1) 
    while l1 != 0: 
     w.move(cirkel1, 0, -20) 
     l1 -= 1 

Но цикл, пока выполняется в то же самое время я нажать на кнопку, которая делает, что мяч не двигается вообще. Я попытался оглядеться и нашел функцию сна, но проблема в том, что она приостанавливает всю мою программу, а не только цикл. И я хочу, чтобы можно было опустить мяч еще дальше, пока он медленно поднимается. Я попытался найти таймер или что-то в этом роде, но я не мог найти ничего понятного, и это выглядело как работа.

Я делаю что-то неправильно, забывая вариант или это то, что я хочу, просто невозможно? Пожалуйста, помогите мне.

+0

Что такое 'w' &' label1'? –

+0

Я использую GIU с tkinter. Label1 - это первый ярлык, который я использую (так, где текст отображается), и я использую его для подсчета количества раз, когда нажимается buttom, или как «низкий» мяч. w из холста, который я использую, и делает овал, который я нарисовал, перемещается вниз. – Noralie

ответ

0

Вы должны взглянуть на модуль резьбы: https://docs.python.org/2/library/threading.html

Вы можете, например, встраивать все анимации внутри run() метод а нити. Вы также можете использовать объекты Timer для последовательных шагов анимации.

+0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. –

+0

Я не достаточно опытен в Python, я не совсем понимаю, как именно включить эту информацию в мой код, чтобы он работал. – Noralie

+0

Что такое cirkel1? Как называется функция callback1()? –

Смежные вопросы