2011-10-13 9 views
7

Estoy interesado en crear un cursor de mouse personalizado, de modo que durante arrastrar y seleccionar eventos en ciertas líneas o puntos, el mouse cambie de una flecha a una mano (u otro símbolo). ¿Cuál es el mejor método para hacer esto? Supongo que esto es posible ya que el cursor del mouse cambia a una pequeña cruz de cabello durante las operaciones de acercamiento. Si es posible, sería preferible una solución que utilice el backend PyQt/PySide.Cómo crear un cursor de mouse personalizado en Matplotlib

Respuesta

4

Lo que necesita es mpl_canvas. Siga este tutorial para configurar uno.

Con un mpl_canvas, puede configurar los eventos que se activan.

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

Existen varios tipos de señales de bajo here (enumerados en la sección Eventos).

Con su configuración de señal, se llama a su_método, con un parámetro de evento. Así que haga algo como:

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

Haga clic en los enlaces Clase y descripción corrosponding para ver qué es exactamente en el evento. para un evento mpl_canvas específico.

En su caso específico, para cambiar la apariencia del puntero del ratón your_method debería ser algo como:

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