我有这个非常奇怪的问题,如果你滚动"而鼠标光标放在感兴趣的艺术家对象上。这是预期的行为吗?为了澄清,我使用的是Macbook,滚动我的意思是用两根手指轻扫(或用一只魔术鼠标上的一根手指)。
我试图实现的功能是在某些axvspan段(多边形艺术家对象)上有工具提示,如果单击,则拾取事件有效,但即使您在鼠标悬停在其中一个段上时滚动兴趣,多次挑选事件被解雇。
我无法在网上找到任何人遇到同样问题的内容,并且文档也没有明确解决挑选事件(它只是说:"用户解雇时)在画布上选择一个足够接近艺术家的位置")。什么构成了" pick"?
编辑:我正在做的一个例子(这些函数是wxpython面板子类的一部分)
def plot(self):
for i in range(len(startTimes)):
self.axs.axvspan(startTimes[i], endTimes[i], color='blue', alpha=0.3, picker=True))
self.figure.canvas.mpl_connect('pick_event', self.onpick3)
def onpick3(self, event):
x = event.mouseevent.xdata
y = event.mouseevent.ydata
for i in range(len(startTimes)):
if x < endTimes[i] and x > startTimes[i]:
print segmentLabels[i]
答案 0 :(得分:3)
您现在可能已经解决了这个问题,但作为参考,滚轮已注册为按钮,这确实是预期的功能。
上述问题的解决方案是使用MouseEvent的按钮属性过滤事件:
def onpick3(self, event):
if event.mouseevent.button == 1 # --> Left-click only
x = event.mouseevent.xdata
y = event.mouseevent.ydata
for i in range(len(startTimes)):
if x < endTimes[i] and x > startTimes[i]:
print segmentLabels[i]
文档可在此处找到:
http://matplotlib.org/api/backend_bases_api.html#matplotlib.backend_bases.MouseEvent
当用户在画布上足够靠近艺术家的位置调用MouseEvent(请参阅上面的链接)时,会触发选择事件。
&#39;充分关闭&#39;可以通过将一个整数作为公差传递给axvspan picker attr来控制,所以&#34; picker = True&#34;可能会变成&#34; picker = 5&#34;。