У меня есть функция (A), которая связана с событием щелчка на холсте.В какой-то момент функция A вызывает другую функцию (B).Содержимое холста может измениться в функции B, поэтому я хочу, чтобы оно игнорировало события щелчка холста во время работы.Я попытался установить переменную bool, которая проверяется, когда функция A вызывается в False перед вызовом функции B, а затем сбрасывается в значение True, когда функция B завершена, но событие все еще стоит в очереди с неверными координатами мыши для нового содержимого,Я попытался повторно привязать события щелчка холста к функции (C), которая просто возвращает «break», затем вызывает функцию B, затем повторно привязывает события щелчка холста обратно к функции A. Тем не менее очереди с плохими координатами мыши для нового содержимого.Я попытался установить состояние холста на «отключен», вызывая функцию B, а затем установить состояние на «нормальный».Я попытался вернуть "break" из функции A, функции B и из обоих.Я получаю тот же результат, он все еще стоит в очереди с плохими координатами мыши для нового содержимого.Любые предложения?
код, который я использую для тестирования параметров в его текущем состоянии:
import time
from tkinter import *
class test_form(object):
def __init__(self, master):
self.master = master
self._CreateGUI()
def _CreateGUI(self):
geom = "200x175+0+0"
self.master.geometry(geom)
self.xx=Canvas(bg='#ff0000',width=100,height=75)
self.xx.bind('<ButtonRelease>',self.test_button)
self.xx.pack()
def waste_time(self):
print('time wasted')
time.sleep(10)
return "break"
def test_button(self,event=None):
self.waste_time()
return "break"
def start_gui():
root = Tk()
form_load = test_form(root)
root.mainloop()
if __name__ == "__main__":
start_gui()