所以正如问题所说,我的用户界面上有一个 QGraphicsView 。我制作了一个将图像放到 QGraphicsView 上的函数:
// Read New Image from file
QImage image(":/images/myFile.png");
/// Declare a pointer to a scene
QGraphicsScene *scene = new QGraphicsScene();
// add a pixmap to the scene from the QImage 'image'
scene->addPixmap(QPixmap::fromImage(image));
// set the scene to equal the height and width of the map image
scene->setSceneRect(0,0,image.width(),image.height());
// Set the Scene to the GraphicsView on the UI
ui->graphicsView->setScene(scene);
但是现在我希望能够在图像上的特定 XY 值处绘制点。我有一个函数可以很好地做到这一点,但是一旦调用这个函数,所有的点就会出现并且图片消失了:(。我知道这是因为我再次将场景设置为带有点的场景,所以程序只是得到摆脱它当前使用的那个(图像之一)
for(unsigned int i = 0; i < pixels.size(); i++)
{
x = pix_iter->second;
y = pix_iter->first;
scene->addEllipse(x, y, 1, 1, pen, QBrush(Qt::SolidPattern));
pix_iter++;
}
ui->graphicsView->setScene(scene);
无论如何,我不知道该怎么做才能更新场景以添加点,而不仅仅是设置一个新场景
任何帮助将非常感激。