我正在尝试使用Pyside2将matplotlib嵌入到Qt接口中。我想用“imshow”来显示一个图像,我可以用滚轮放大并点击。要连接滚轮和鼠标,我使用:
self.fig.canvas.mpl_connect('button_press_event', self.mouseClick)
self.fig.canvas.mpl_connect('scroll_event', self.wheelEvent)
如果对于我使用的事件处理程序:
def wheelEvent(self, event):
print(event)
def mouseClick(self, event):
print(event)
当我运行此命令,然后滚动并单击时,我得到的输出是:
button_press_event: xy=(94, 199) xydata=(99.99197230814553, 134.93602887023127) button=1 dblclick=False inaxes=AxesSubplot(0.125,0.290018;0.775x0.409964)
<PySide2.QtGui.QWheelEvent object at 0x7f92e3359a50>
所以我的问题是,为什么在一种情况下我得到一个PySide事件,而在另一种情况下得到一个matplotlibbutton_press_event
?我所期望的是得到一个scroll_event
非常感谢
说明:
wheelEvent是QWidget类的一种方法,当窗口通过QWheelEvent具有焦点时,每次与控制盘交互时都会收到通知,因此从它继承的类也将具有它,在本例中,它们覆盖了该方法,并且您还将其连接到scroll_事件,因此打印QWheelEvent(在我使用Linux上的PySide2 5.14时,我交替接收QWheelEvent和scroll_事件)
解决方案:
不要使用wheelEvent方法,而是使用另一个名称的方法:
^{pr1}$相关问题 更多 >
编程相关推荐