2011-10-13 142 views
7

我有興趣創建自定義鼠標光標,以便在拖動和選取特定線條或點上的事件時,鼠標從箭頭更改爲手形(或其他符號)。這樣做的最好方法是什麼?我認爲這是可能的,因爲在縮放操作過程中,鼠標光標變成一個小十字。如果可能的話,使用PyQt/PySide後端的解決方案將是更可取的。如何在Matplotlib中創建自定義鼠標光標

回答

4

你需要的是mpl_canvas。按照這個tutorial設置一個。

使用mpl_canvas,可以設置觸發的事件。

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

here(在Events下面列出)有幾種信號。

隨着您的信號設置,your_method被調用,帶有一個事件參數。因此,請執行以下操作:

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

單擊corrosponding類和說明鏈接查看事件中究竟發生了什麼。針對特定的mpl_canvas事件。

在您的具體情況,來改變鼠標的外觀your_method應該是這個樣子:

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