wxPython - иногда события не запускаются
Я пытаюсь создать систему перетаскивания для перетаскивания объектов из одного ObjectListView в другой. Я связываю это событие:
self.olv["music_dir"].Bind(wx.EVT_LIST_BEGIN_DRAG, self.handler.begin_music_dir_drag)
а затем обработать это так:
def begin_music_dir_drag(self, event):
self.music_dir_dragging = True
self.music_dir_drag_target = event.GetEventObject().GetSelectedObject()
if not self.music_dir_drag_target:
self.music_dir_drag_target = event.GetEventObject().GetSelectedObjects()
Тогда я ловлю "падение" с:
self.olv["music_playlist"].Bind(wx.EVT_LEFT_UP, self.handler.handle_playlist_stop_drag)
И справиться с этим:
def handle_playlist_stop_drag(self, event):
if self.music_dir_dragging:
*** A bunch of irrelevant processing ***
self.gui_obj.frame.olv["music_playlist"].AddObjects(new_model_objs)
self.music_dir_dragging = False
self.music_dir_drag_target = None
Таким образом, это похоже на работу - большую часть времени. Временами это работает быстро с быстрыми движениями мыши. В других случаях это работает только тогда, когда я замедляюсь, щелкаю и двигаюсь намеренно. В других случаях это не будет работать вообще много раз подряд. Я не могу понять, почему. Какие-нибудь мысли?