📜  PyQtGraph - 获取图形项的转换项(1)

📅  最后修改于: 2023-12-03 15:33:55.240000             🧑  作者: Mango

PyQtGraph - 获取图形项的转换项

当使用PyQtGraph创建动态数据可视化时,我们需要实时获取图形项(例如曲线、散点图等)的转换项。这些转换项是根据图形项的坐标系和缩放参数计算出来的。PyQtGraph提供了很多方便的方法来获取这些转换项。

获取坐标系

在PyQtGraph中,每个图形项都有自己的坐标系。可以使用Item.coordinate属性来获取将覆盖整个项的坐标系对象。这个对象可以用来进行坐标变换,例如在本地和屏幕坐标系之间转换。

item = pg.PlotItem()
coord = item.coordinate()
获取缩放比例

在PyQtGraph中,坐标系的缩放比例决定了图形项的大小和位置。可以使用Item.getViewBox()方法来获得当前图形项所在的视图框。然后可以使用视图框的viewRange()方法来获取缩放比例。

item = pg.PlotItem()
viewbox = item.getViewBox()
scale = viewbox.viewRange()[0]
获取本地坐标

在PyQtGraph中,每个图形项都有自己的本地坐标系,它是相对于图形项的左上角计算的。可以使用Item.mapToView()方法将本地坐标映射到视图框的坐标系中。

item = pg.PlotItem()
pt = item.mapToView(QtCore.QPointF(100, 100))
获取屏幕坐标

在PyQtGraph中,可以使用Item.mapToScene()方法将本地坐标映射到场景坐标系中。然后可以使用场景坐标系的scenePos()方法将坐标映射到屏幕坐标系中。

item = pg.PlotItem()
pt = item.mapToScene(QtCore.QPointF(100, 100))
screen_pos = item.scenePos() + pt
获取物理坐标

在PyQtGraph中,物理坐标是指相对于设备的坐标系,例如像素的坐标。可以使用Item.mapToScene()方法将本地坐标映射到场景坐标系中。然后可以使用场景坐标系的mapToItem()方法将坐标映射到设备坐标系中。

item = pg.PlotItem()
pt = item.mapToScene(QtCore.QPointF(100, 100))
device_pos = item.scene().views()[0].viewport().mapFromScene(pt)