Qt GUI:如何从另一个类访问函数

时间:2013-11-27 06:05:19

标签: c++ qt

我想从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函数中生成的,但它没有显示在屏幕上。任何人都可以帮我重新编写代码并解释原因吗?

还有一个问题:如果代码有效,如何删除红色地图并仅将蓝色地图保留在内存中,而不影响场景中的其他项目?

非常感谢!

0 个答案:

没有答案