pyside获取graphview组件在窗口中的位置
时间: 2024-04-30 16:23:44 浏览: 102
您可以使用 `mapToGlobal()` 函数将 `graphview` 组件的位置映射到全局窗口中,然后使用 `geometry()` 函数获取该组件的位置和大小。
以下是一个示例代码:
```python
from PySide2.QtWidgets import QApplication, QMainWindow, QGraphicsView
from PySide2.QtCore import QPoint
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 600, 400)
self.graphview = QGraphicsView(self)
self.graphview.setGeometry(50, 50, 500, 300)
def get_graphview_position(self):
graphview_pos = self.graphview.mapToGlobal(QPoint(0, 0))
graphview_geo = self.graphview.geometry()
print("Graphview position in global coordinates:", graphview_pos)
print("Graphview geometry:", graphview_geo)
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
window.get_graphview_position()
app.exec_()
```
在上面的示例中,我们创建了一个 `MainWindow` 类,并在其中添加了一个 `graphview` 组件。然后,我们定义了一个 `get_graphview_position()` 函数,该函数将 `graphview` 组件的位置和大小打印到控制台上。
在 `get_graphview_position()` 函数中,我们首先使用 `mapToGlobal()` 函数将 `graphview` 组件的位置映射到全局窗口中,并将其存储在 `graphview_pos` 变量中。然后,我们使用 `geometry()` 函数获取 `graphview` 组件的位置和大小,并将其存储在 `graphview_geo` 变量中。最后,我们将这些信息打印到控制台上。
阅读全文