如何将 QPixmap 设置为空

How to set QPixmap to null

我有一个函数接收对 QPixmap 的引用作为参数,如下所示:

void myFunction(QPixmap &pixmap){
    //[...]
}

如何将像素图设置为 "null" 以便在已加载内容的像素图上调用 myFunction()pixmap.isNull() returns true

示例:

//1. Create pixmap
QPixmap pixmap;
qDebug() << pixmap.isNull(); //true

//2. load image
pixmap.load("existing_image.png");
qDebug() << pixmap.isNull(); //false

//3. run myFunction on pixmap
myFunction(pixmap);
qDebug() << pixmap.isNull(); //true

一种方法是使用 swap() 方法将图像数据替换为空 QPixmap:

void myFunction(QPixmap &pixmap){
    pixmap.swap(QPixmap());
}

swap()(上面链接)的文档指出:

Swaps pixmap other with this pixmap. This operation is very fast and never fails.