如何在Tkinter中终止按钮回调方法

时间:2018-11-03 23:10:38

标签: python tkinter

我有这种情况:

button_a = tk.Button(self, text="<", command=self.button_a_clicked)

我假设button_a_clicked回调在单独的线程中运行。然后,我希望另一个按钮button_b首先停止button_a_clicked,然后执行自己的任务。

button_b = tk.Button(self, text="<", command=self.button_b_clicked)

因此,如何在button_b_clicked回调中实现该目标。反正可以实现吗?

我试图创建一个布尔值,以便在button_b_clicked内将其设置为false,而在button_a_clicked内将其设置为false,则我退出该方法。像这样:

def button_a_clicked(self):
    self.flag = True
    while True: 
         if not self.Flag:
              return
         ... rest of code ...

def button_b_clicked(self):
    self.flag = False
    ... button b clickec logic (containing some loop) ...

但是,我可以看到,在button_b_clicked已经启动并在其中执行了几次迭代之后的某个时间点,button_a_clicked中的条件已经达到。那么是否有更好的方法来强制终止button_a_clicked回调?

编辑: 我正在做的确切场景是在这种方法中: https://github.com/b-safwat/video_labeling_tool_for_action_detection/blob/master/VideoPlayer.py#L111

0 个答案:

没有答案