Pyqtgraph,帮助了解源代码

2024-05-03 03:51:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我想了解库的一些部分“PyQtGraph”,尤其是在2D绘图方面。在

在源代码中,两个python文件如下:PlotDataItem.py和{}(它们位于pyqtgraph/graphicsItems/)。但在这两个文件中,我看不到任何要绘制的函数。我的意思是我们只有保存x和y数据的方法(self.yData和{})。严格地说,绘制数据的方法在哪里?(相当于matplotlib中的draw()。)

编辑: 谢谢你的回答。我正在阅读源代码,是的,我发现ViewBox.addItem. 事实上,我试图删除代码的某些部分,以查看曲线是否被分解。台词:场景.addItem(项目)和项目.setParentItem(self.childGroup)似乎很重要。不管怎样,你的意思是我必须专注于qgraphicscene和QGraphicsView?你能确认一下PlotDataItem只是一个文件,其中x和y数据被“保存”而没有“plot”?在


Tags: 文件数据项目方法函数pyself绘图
1条回答
网友
1楼 · 发布于 2024-05-03 03:51:57

简单的回答是PyQtGraph将绘图委托给Qt's Graphics View Framework。PyQtGraph将创建一个QGraphicsScene,并将QGraphicsItems添加到该场景中。如果将QGraphicsView对象连接到该场景,Qt将使用该视图的变换(缩放、旋转等)来渲染场景。在

因此PlotCurveItem和{}是{}的后代。通过调用它们的scene()方法,可以找出它们属于哪个场景。我花了一点功夫才找到PyQtGraph将项目添加到场景的位置。这是在ViewBox.addItem中完成的,它由PlotItem.addItem调用,后者又由{}调用。在

如果想理解PyQtGraph,必须阅读Organization of Plotting Classes部分。尽管如此,PyQtGraph类层次结构有时会因为多重继承和命名不一致(术语itemwidget被重载,一致的命名约定可能会导致长而笨拙的名称)。我在过去做了一个UML图来获得更好的概述(见下文)。蓝色的类由PyQtGraph定义,黑色的类是Qt类。它不是完整的,不是所有的PyQtGraph类都包括在内。在

enter image description here

相关问题 更多 >