实际上,我在使用Matplotlib作为Pyside 2画布的后端进行鼠标单击坐标时遇到了这个问题
我正在使用这个小部件: 类MatplotLibWidget(QtWidgets.QWidget):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.canvas = FigureCanvas(Figure())
vertical_layout = QtWidgets.QVBoxLayout()
vertical_layout.addWidget(self.canvas)
vertical_layout.addWidget(NavigationToolbar(self.canvas, self))
self.canvas.axes = self.canvas.figure.add_subplot(111)
self.setLayout(vertical_layout)
这门课:
class BlablaWidget(MainFrame.Ui_MainWindow, QtWidgets.QWidget):
def __init__(self, widgetBlabla, matching_fronts, matching_point):
# I call the Widget Itself from another Module #
QtWidgets.QWidget.__init__(self)
self.Blablaplot = widgetBlabla
if matching_fronts != 99999:
self.Blabla_func(matching_fronts)
def Blabla_func(self, matching_fronts):
# on click event
def onclick(event):
print(event)
ix, iy = round(float(event.xdata), 5), round(float(event.ydata), 5)
print(ix, iy)
.....
.....
self.Blablaplot.canvas.axes.plot(.....)
# then i Call the event of mouse clicking
self.Blablaplot.canvas.mpl_connect('button_press_event', onclick)
self.Blablaplot.canvas.draw()
实际上,对于不同的过滤器,我得到了不同的数据,而且明显比新的绘图要多
问题是,对于GUI中的第一个绘图,我将打印1个单坐标,但当我清除前一个绘图并在窗口中显示另一个新绘图时,所有事件都会被保留,并且总是在屏幕上多次显示相同的坐标(我得到的每个新绘图,也会在屏幕上显示一个新事件)
我尝试在连接后断开“实际”事件,但这样做时,我看不到任何坐标
我做错了什么
提前谢谢
目前没有回答
相关问题 更多 >
编程相关推荐