如何将QPixmap设置为null

时间:2018-08-21 00:12:45

标签: c++ qt null qt5 qpixmap

我有一个函数可以像这样接收对QPixmap的引用作为参数:

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

如何将像素图设置为“空”,以使pixmap.isNull()在已加载了内容的像素图上调用true后返回myFunction()

示例:

//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

2 个答案:

答案 0 :(得分:3)

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

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

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

  

与此像素图交换其他像素图。此操作非常快速且   永远不会失败。

答案 1 :(得分:-1)

使用此

void myFunction(QPixmap* &pixmap){
//[...]
delete pixmap;
pixmap = NULL;
}

新示例:

//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