QPainter如何在QGraphicsView控件上实现
时间: 2023-11-22 17:55:06 浏览: 156
Qt QGraphicsView 控件实现标尺和刻度先效果
要在`QGraphicsView`控件上绘制图形,可以使用`QGraphicsScene`和`QGraphicsItem`结合`QPainter`来实现。
以下是一个简单的例子,演示如何在`QGraphicsView`上绘制一条线:
```python
from PyQt5.QtCore import Qt, QPointF
from PyQt5.QtGui import QPainter, QPen
from PyQt5.QtWidgets import QGraphicsScene, QGraphicsView, QGraphicsLineItem, QApplication
class MyGraphicsView(QGraphicsView):
def __init__(self):
super().__init__()
scene = QGraphicsScene(self)
self.setScene(scene)
line = QGraphicsLineItem(QPointF(0, 0), QPointF(100, 100))
pen = QPen(Qt.red)
pen.setWidth(2)
line.setPen(pen)
scene.addItem(line)
if __name__ == '__main__':
app = QApplication([])
view = MyGraphicsView()
view.show()
app.exec_()
```
在这个例子中,我们创建了一个自定义的`QGraphicsView`,它创建了一个`QGraphicsScene`并将其设置为视图的场景。然后,我们创建了一个`QGraphicsLineItem`并将其添加到场景中。接着,我们设置了线的颜色和宽度,最后将线添加到场景中。当视图显示时,它将自动渲染场景中的图形。
阅读全文