Как вырваться из цикла с выпуском кнопки - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть кнопка, которая при нажатии должна продолжать печатать определенную фразу.Однако у меня есть оператор if, который должен выйти из цикла while, если он читает, что кнопка отпущена.По сути, я пытаюсь создать графический интерфейс, который при нажатии определенной кнопки продолжает выполнять функцию, пока эта кнопка не будет отпущена в tkinter.Я считаю, что должно быть утверждение, которое читает состояние кнопки и знает, когда кнопка отпущена, но я не знаю, что это такое.

    self.button.pack(side="top")
    self.vsb.pack(side="right", fill="y")
    self.text.pack(side="bottom", fill="x")

    self.button.bind("<ButtonPress>", self.on_press)
    self.button.bind("<ButtonRelease>", self.on_release)

def on_press(self, event):
    while True:
        time.sleep(1)
        self.log("button was pressed")
        if (what do I put here):
            break

1 Ответ

0 голосов
/ 12 февраля 2019

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

Вот ОЧЕНЬ простой пример:

def on_press(self, event):
    self._running = True
    threading.Thread(self.my_loop).start()

def my_loop(self):
    while self.running:
        time.sleep(1)
    print("loop is done")

def on_release(self, event):
    self._running = False # this will stop the loop in the other thread...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...