QGraphicsview 显示ROI矩形选区。
时间: 2024-02-28 17:26:49 浏览: 63
要在 QGraphicsView 中显示 ROI 矩形选区,可以创建一个 QGraphicsItem,该 Item 包含一个矩形和一个半透明的填充。然后在 QGraphicsView 上添加该 Item。
下面是一个简单的示例代码,用于在 QGraphicsView 中显示 ROI 矩形选区:
```python
from PyQt5.QtCore import QRectF
from PyQt5.QtGui import QColor, QBrush, QPen
from PyQt5.QtWidgets import QGraphicsItem
class ROI(QGraphicsItem):
def __init__(self, rect: QRectF):
super().__init__()
self.rect = rect
self.setZValue(1)
self.setFlag(QGraphicsItem.ItemIsMovable, True)
self.setFlag(QGraphicsItem.ItemIsSelectable, True)
def boundingRect(self):
return self.rect
def paint(self, painter, option, widget=None):
painter.setPen(QPen(QColor(255, 0, 0), 2))
painter.setBrush(QBrush(QColor(255, 0, 0, 100)))
painter.drawRect(self.rect)
```
在你的主代码中,创建 QGraphicsView 和 QGraphicsScene 对象。然后,将 ROI 对象添加到 QGraphicsScene 中,并将 QGraphicsScene 设置为 QGraphicsView 的 Scene。
```python
from PyQt5.QtWidgets import QApplication, QGraphicsView, QGraphicsScene
from PyQt5.QtCore import QRectF
if __name__ == '__main__':
app = QApplication([])
view = QGraphicsView()
scene = QGraphicsScene()
view.setScene(scene)
roi_rect = QRectF(10, 10, 100, 100)
roi = ROI(roi_rect)
scene.addItem(roi)
view.show()
app.exec_()
```
这将在 QGraphicsView 中显示一个红色半透明矩形,该矩形可以拖动和选择。你可以根据需要调整矩形的位置和大小。
阅读全文