python QGraphicsView加入到Qwidget 新建一个类继承Qwidget
时间: 2023-07-04 14:23:03 浏览: 110
实现qt QGraphicsView放大缩小功能的类
4星 · 用户满意度95%
好的,如果要将 `QGraphicsView` 加入到继承自 `QWidget` 的自定义类中,可以创建一个新的类并重写其构造函数,将 `QGraphicsView` 添加到布局管理器中。以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QGraphicsScene, QGraphicsView, QGraphicsEllipseItem
from PyQt5.QtGui import QPen, QColor
import sys
class MyWidget(QWidget):
def __init__(self):
super().__init__()
# 创建布局管理器
layout = QVBoxLayout(self)
# 创建场景和视图对象
scene = QGraphicsScene()
view = QGraphicsView(scene)
# 添加椭圆形
ellipse = QGraphicsEllipseItem(0, 0, 100, 100)
ellipse.setPen(QPen(QColor(255, 0, 0)))
scene.addItem(ellipse)
# 将视图添加到布局管理器中
layout.addWidget(view)
if __name__ == '__main__':
app = QApplication(sys.argv)
# 创建窗口
widget = MyWidget()
# 显示窗口
widget.show()
sys.exit(app.exec_())
```
在这个示例中,我们首先导入所需的 PyQt5 模块。然后,我们创建一个继承自 `QWidget` 的自定义类 `MyWidget`,并重写其构造函数。在构造函数中,我们创建一个垂直布局管理器,并将 `QGraphicsView` 添加到布局管理器中。
在这个简单的示例中,我们添加了一个椭圆形 (QGraphicsEllipseItem) 到场景中。我们设置了椭圆形的边框颜色 (QPen) 为红色。
最后,我们创建一个 `MyWidget` 对象并显示它,启动应用程序的事件循环,以便我们可以与应用程序进行交互。
阅读全文