我有这种情况:
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