我想从Inputwindow :: updateMap调用一个函数Mapwindow :: generateMap,这里是代码:
void Inputwindow::updateMap()
{
Mapwindow mapWindowObject;
mapWindowObject.generateMap();
}
在另一个档案中:
Mapwindow::Mapwindow()
{
scene = new QGraphicsScene(0, 0, 0, 0);
QPixmap pixmap = QPixmap(30,30);
pixmap.fill(Qt::red);
scene->addPixmap(pixmap);
view = new MapView;
view->setScene(scene);
setCentralWidget(view);
}
void Mapwindow::generateMap()
{
QPixmap pixmap = QPixmap(30,30);
pixmap.fill(Qt::blue);
scene->addPixmap(pixmap);
}
在我调用Inputwindow :: updateMap之前,读取视图,我想通过调用Inputwindow :: updateMap将图片更改为蓝色地图。但它不起作用,图片仍然是红色的。我在generateMap函数中的场景和视图上尝试了update()但仍然无效。我确定蓝色地图是在generateMap函数中生成的,但它没有显示在屏幕上。任何人都可以帮我重新编写代码并解释原因吗?
还有一个问题:如果代码有效,如何删除红色地图并仅将蓝色地图保留在内存中,而不影响场景中的其他项目?
非常感谢!