Как завершить метод обратного вызова кнопки в tkinter - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть такой сценарий:

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 всякий раз, когда это логическое значение было ложным, я выходил из метода. Примерно так:

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_a_clicked достигается в какой-то момент времени после того, как button_b_clicked уже запущен и выполнил несколько итераций внутри него. Так есть ли лучший способ принудительного завершения button_a_clicked обратного вызова?

Edit: Точный сценарий, который я делаю, заключается в следующем: https://github.com/b-safwat/video_labeling_tool_for_action_detection/blob/master/VideoPlayer.py#L111

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...