QT 用QLabel和pixmap加载的图片想把它清除掉应该怎么做 已经写好了判断人物坐标的函数可是不知道如何实现清除,网上查的clear和delete也都试了

QT 用QLabel和pixmap加载的图片想把它清除掉应该怎么做呀?
想实现一个人物图片移动到一个位置后清除地图中原先加载的钥匙图元
如图,已经写好了判断人物坐标的函数
可是不知道如何实现清除,网上查的clear和delete也都试了。
clear()是不知道位置写错了还是什么别的原因,总之不起作用。
delete也不知道改写在哪里,一运行就崩溃了,求解答。

img

img


这里是移动判断,判断,然后重新调用了initmap(),我自己感觉可能是因为重新画了,所以实在老图元上叠加,但是不知道怎么修正。

img


万分感谢解答。

以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:

您可以使用QLabel的clear()函数来清除QLabel中的pixmap,示例代码如下:

QLabel *label = new QLabel(this); //创建QLabel
label->setPixmap(QPixmap("image.png")); //设置pixmap
//...
label->clear(); //清除pixmap

在您的代码中,可以将需要清除的QLabel对象传递给一个函数,然后在该函数中调用clear()函数来清除pixmap。例如:

void clearPixmap(QLabel *label) {
    label->clear();
}

然后在您的移动判断函数中,调用该函数来清除需要清除的QLabel,例如:

if (x == key_x && y == key_y) { //判断是否到达钥匙位置
    clearPixmap(keyLabel); //清除钥匙图元
}

其中,keyLabel是您需要清除的QLabel对象。