如何通过释放按钮打破while循环

时间:2019-02-11 19:04:34

标签: python python-3.x tkinter

我有一个按钮,当按下该按钮时,该按钮应该继续打印特定短语。但是我有一个if语句,如果它读取按钮已释放,则应该打破while循环。本质上,我正在尝试创建一个gui,当按下特定按钮时,它将继续执行功能,直到该按钮在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 :(得分:0)

您不能在处理偶数时进入死循环。尝试改用线程。

这是一个非常简单的示例:

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...