wxPython - 有时事件不会触发

时间:2016-02-15 08:55:12

标签: python event-handling wxpython intermittent objectlistview-python

我正在尝试创建一个拖放系统,用于将对象从一个ObjectListView拉到另一个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 个答案:

没有答案