Я пытаюсь создать перетаскиваемый линейный объект.Событие pick и событие уведомления о движении просто в порядке, но кажется, что есть проблема с событием release.Я могу щелкнуть линию и перетащить ее, но не могу ничего сделать, чтобы остановить перетаскивание.
Ниже приведен мой код для строки:
class drawable_lines:
def __init__(self, ax, Y):
self.ax = ax
self.c = ax.get_figure().canvas
self.y = Y
self.line = ax.axhline(y=Y, picker=5)
self.ax.add_line(self.line)
self.c.draw_idle()
self.sid = self.c.mpl_connect('pick_event', self.clickonline)
def clickonline(self, event):
if event.artist == self.line:
self.follower = self.c.mpl_connect('motion_notify_event', self.followmouse)
self.releaser = self.c.mpl_connect('button_release_event', self.release)
def followmouse(self, event):
self.line.set_ydata([event.ydata, event.ydata])
self.c.draw_idle()
def release(self, event):
self.y = self.line.get_ydata()[0]
self.c.mpl_disconnect(self.followmouse)
self.c.mpl_disconnect(self.release)