如何在Matplotlib中创建自定义鼠标光标

时间:2011-10-13 14:49:01

标签: cursor matplotlib

我对创建自定义鼠标光标感兴趣,因此在某些线条或点上拖动和拾取事件期间,鼠标会从箭头变为手形(或其他符号)。这样做的最佳方法是什么。我认为这是可能的,因为在缩放操作期间鼠标光标变为小的十字线。如果可能,使用PyQt / PySide后端的解决方案将是更可取的。

1 个答案:

答案 0 :(得分:4)

你需要的是mpl_canvas。按照此tutorial设置一个。

使用mpl_canvas,您可以设置触发的事件。

fig = matplotlib.figure.Figure()
cid = fig.canvas.mpl_connect('button_press_event', your_method)

here下有几种信号(在事件中列出)。

设置好信号后,会调用your_method,并带有一个事件参数。所以做一些像:

def your_method(event):
    print('Your x and y mouse positions are ', event.xdata, event.ydata)

单击相应的类和描述链接以查看事件的确切内容。对于特定的mpl_canvas事件。

在您的具体情况下,要更改鼠标的外观,您的方法应该类似于:

 def your_method(event):
     #changes cursor to +
     QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.CrossCursor))