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

Таким образом, это похоже на работу - большую часть времени. Временами это работает быстро с быстрыми движениями мыши. В других случаях это работает только тогда, когда я замедляюсь, щелкаю и двигаюсь намеренно. В других случаях это не будет работать вообще много раз подряд. Я не могу понять, почему. Какие-нибудь мысли?

0 ответов

Другие вопросы по тегам