qt qgraphicsview实现绘图
时间: 2024-01-19 13:04:02 浏览: 239
Qt QGraphicsView 控件实现标尺和刻度先效果
5星 · 资源好评率100%
在Qt中,可以使用QGraphicsView来实现绘图功能。下面是一个简单的示例代码:
```python
from PyQt5.QtWidgets import QApplication, QGraphicsView, QGraphicsScene, QGraphicsItem
from PyQt5.QtCore import Qt, QRectF
from PyQt5.QtGui import QPainter, QPen, QBrush
class MyGraphicsItem(QGraphicsItem):
def __init__(self):
super().__init__()
self.setFlag(QGraphicsItem.ItemIsMovable, True)
self.setFlag(QGraphicsItem.ItemIsSelectable, True)
def boundingRect(self):
return QRectF(-50, -50, 100, 100)
def paint(self, painter, option, widget):
painter.setPen(QPen(Qt.black, 2))
painter.setBrush(QBrush(Qt.red))
painter.drawRect(self.boundingRect())
if __name__ == '__main__':
app = QApplication([])
view = QGraphicsView()
scene = QGraphicsScene()
item = MyGraphicsItem()
scene.addItem(item)
view.setScene(scene)
view.show()
app.exec_()
```
这个示例代码创建了一个自定义的图元类`MyGraphicsItem`,并在`paint`函数中绘制了一个红色的矩形。然后,创建了一个`QGraphicsScene`对象,并将自定义图元添加到场景中。最后,创建了一个`QGraphicsView`对象,并将场景设置为视图的场景,然后显示视图。
运行这段代码,你将看到一个窗口显示了一个红色的矩形,你可以通过拖动和选择来操作图元。
阅读全文