Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQt:获取QGraphicsGridLayout中QGraphicsWidgets的位置_Python_Qt_Pyqt - Fatal编程技术网

Python PyQt:获取QGraphicsGridLayout中QGraphicsWidgets的位置

Python PyQt:获取QGraphicsGridLayout中QGraphicsWidgets的位置,python,qt,pyqt,Python,Qt,Pyqt,我有一个相当简单的PyQt应用程序,其中我将QGraphicsWidget的实例放置在QGraphicsGridLayout中,并希望使用QGraphicsPath绘制的线连接小部件。不幸的是,无论我尝试什么,我总是得到(0,0)作为开始和结束小部件的位置 我正在使用递归函数构建图形,该函数将小部件添加到场景和布局中。递归函数完成后,布局将添加到新的小部件,该小部件将添加到场景中以显示所有内容。边在创建小部件时添加到场景中 如何获得网格布局中任何小部件的非零位置 更新:我忘了提到我已经在网格布局

我有一个相当简单的PyQt应用程序,其中我将QGraphicsWidget的实例放置在QGraphicsGridLayout中,并希望使用QGraphicsPath绘制的线连接小部件。不幸的是,无论我尝试什么,我总是得到(0,0)作为开始和结束小部件的位置

我正在使用递归函数构建图形,该函数将小部件添加到场景和布局中。递归函数完成后,布局将添加到新的小部件,该小部件将添加到场景中以显示所有内容。边在创建小部件时添加到场景中

如何获得网格布局中任何小部件的非零位置


更新:我忘了提到我已经在网格布局中的小部件上尝试了pos()和scenePos()。两者都始终返回(0,0)作为网格中每个小部件的位置。

如果使用
QGraphicsItem::pos()
,它将提供项目在父坐标中的位置。使用QGraphicsLayout时,父对象可能是包含对象的单元,因此坐标等于零


由于您希望使用path连接小部件,因此需要场景坐标来定义控制点:使用
QGraphicsItem::scenePos()
获取
QGraphicsWidget
在场景中的位置。

啊-抱歉,我忘了在上面提到它。我已经试过pos()和scenePos()。对于我在网格布局中放置的所有小部件,它们都返回一个(0,0)点。我已经尝试了scenePos()和pos()。我还尝试了maptosene函数。始终为0,0“pos=self.upstreamconnect.maptosene(self.upstreamconnect.pos())”