QT:我需要通过QGraphicsScene获取添加到QGraphicsView的图像坐标

时间:2013-12-12 08:02:43

标签: qt qgraphicsview qgraphicsscene

当我向QGraphicsView添加小图像时,有没有办法获取图像像素的坐标?我在我的自定义类QGraphicsView中使用了rubberband,但我只能获得QGraphicsView坐标。

1 个答案:

答案 0 :(得分:2)

我猜你想从给定位置获取像素。假设给定位置来自鼠标位置。

说,一个继承自QGraphicsView的类:

MyView::MyView( QWidget *parent=0 ) :  QGraphicsView(parent)
{
    setScene( new QGraphicsScene( this ) );
    this->scene()->addPixmap(QPixmap::fromImage(this->image)); // this->image is a QImage
}

然后,实现鼠标事件

void MyView::mouseMoveEvent( QMouseEvent* event )
{
    QPointF pos =  mapToScene( event->pos() );
    QRgb rgb = this->image.pixel( ( int )pos.x(), ( int )pos.y() );
}