qt c++重写继承QGraphicsView批量在图上添加点并且可以和图像一起进行缩放
时间: 2023-05-16 13:07:27 浏览: 201
您可以通过以下代码实现在继承自QGraphicsView的类中批量添加点,并与图像一起进行缩放:
```
class CustomView : public QGraphicsView
{
public:
CustomView(QWidget* parent = nullptr) : QGraphicsView(parent)
{
// 设置场景
QGraphicsScene* scene = new QGraphicsScene(this);
setScene(scene);
// 添加点
for (int i = 0; i < 10; i++)
{
QGraphicsEllipseItem* item = new QGraphicsEllipseItem(QRectF(-5, -5, 10, 10));
item->setPos(i * 20, i * 20);
scene->addItem(item);
}
}
// 重写缩放事件
void wheelEvent(QWheelEvent* event) override
{
// 获取当前缩放比例
qreal scaleFactor = transform().m11();
// 计算缩放因子
if (event->delta() > 0)
scaleFactor *= 1.1;
else
scaleFactor /= 1.1;
// 设置缩放
setTransform(QTransform::fromScale(scaleFactor, scaleFactor));
// 调用父类的缩放事件
QGraphicsView::wheelEvent(event);
}
};
```
您可以在CustomView类中添加其他功能,例如添加鼠标事件以便在图上添加点。
阅读全文