2011-10-13 12 views
7

में कस्टम माउस कर्सर कैसे बनाएं, मुझे कस्टम माउस कर्सर बनाने में दिलचस्पी है, ताकि ड्रैग के दौरान और कुछ पंक्तियों या बिंदुओं पर ईवेंट चुन सकें, माउस एक तीर से हाथ (या अन्य प्रतीक) में बदल जाता है। ऐसा करने का सबसे अच्छा तरीका क्या है। मुझे लगता है कि यह संभव है क्योंकि ज़ूम ऑपरेशंस के दौरान माउस कर्सर छोटे क्रॉस बालों में बदल जाता है। यदि संभव हो, तो पीईक्यूटी/पायसाइड बैकएंड का उपयोग करने वाला समाधान बेहतर होगा।Matplotlib

उत्तर

4

आपको जो चाहिए वह mpl_canvas है। एक सेट अप करने के लिए इस tutorial का पालन करें।

एक mpl_canvas के साथ, फिर आप ट्रिगर होने वाली घटनाएं सेट कर सकते हैं।

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

कई (घटनाक्रम के तहत सूचीबद्ध) here तहत संकेतों के प्रकार होते हैं।

आपके सिग्नल सेट अप के साथ, आपके_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))