Python 2.7 matplotlib中的可拖动点-如何检索点坐标
我希望能够沿着垂直线移动一个点(matplotlib.patches.Ellipse)。为此,我在PySide QtGui.QWidget内调用Dragable rectangle类() 拖动椭圆可以很好地工作,但是当我释放鼠标按钮时,我被困在如何检索椭圆的最终y坐标上(我希望在包含该y坐标的绘图旁边有一个QLabel)。从发布之日起,我有了它的最终位置:Python 2.7 matplotlib中的可拖动点-如何检索点坐标,python-2.7,matplotlib,coordinates,draggable,pyside,Python 2.7,Matplotlib,Coordinates,Draggable,Pyside,我希望能够沿着垂直线移动一个点(matplotlib.patches.Ellipse)。为此,我在PySide QtGui.QWidget内调用Dragable rectangle类() 拖动椭圆可以很好地工作,但是当我释放鼠标按钮时,我被困在如何检索椭圆的最终y坐标上(我希望在包含该y坐标的绘图旁边有一个QLabel)。从发布之日起,我有了它的最终位置: def on_release(self, event): if DraggablePoint.lock is not self:
def on_release(self, event):
if DraggablePoint.lock is not self:
return
self.point.newYcoordinate = self.point.center[1]
self.press = None
DraggablePoint.lock = None
# draw everything but the selected point and store the pixel buffer
canvas = self.point.figure.canvas
axes = self.point.axes
self.point.set_animated(True)
canvas.draw()
self.background = canvas.copy_from_bbox(self.point.axes.bbox)
# now redraw just the point
axes.draw_artist(self.point)
# and blit just the redrawn area
canvas.blit(axes.bbox)
但是如何将其连接到QLabel的文本(并在每次移动椭圆时更新此标签)
通过添加建议的信号:
def on_release(self, event):
...
self.signal.updatedSignal.emit(str(self.point.newYcoordinate))
然后检索y坐标:
self.dragValue.signal.updatedSignal.connect(self.updatedValue)
与:
以及:
在回电时发出信号谢谢@tcaswell!实际上,这很简单,但由于我刚刚开始使用PySide,我缺少一些基础知识;-)请为你自己的问题写一个答案。我的意思是,你实际上可以发布一个问题的答案,然后你可以将其标记为已接受。你能这样做吗?对不起,我把编辑改成了答案
self.dragValue.signal.updatedSignal.connect(self.updatedValue)
def updatedValue(self, newValue):
self.labelValue.setText(newValue)
class UpdatedSignal(QtCore.QObject):
updatedSignal = QtCore.Signal(str)