【发布时间】:2011-12-07 01:06:22
【问题描述】:
我有兴趣创建自定义鼠标光标,以便在某些线或点上的拖动和拾取事件期间,鼠标从箭头变为手(或其他符号)。
最好的方法是什么?
我认为这是可能的,因为在缩放操作期间鼠标光标会变成一个小十字线。如果可能,最好使用 PyQt/PySide 后端的解决方案。
【问题讨论】:
我有兴趣创建自定义鼠标光标,以便在某些线或点上的拖动和拾取事件期间,鼠标从箭头变为手(或其他符号)。
最好的方法是什么?
我认为这是可能的,因为在缩放操作期间鼠标光标会变成一个小十字线。如果可能,最好使用 PyQt/PySide 后端的解决方案。
【问题讨论】:
你需要的是 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 事件。
在您的特定情况下,要更改鼠标的外观,your_method 应该如下所示:
def your_method(event):
#changes cursor to +
QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.CrossCursor))
【讨论】: