代码之家  ›  专栏  ›  技术社区  ›  Mr. Developerdude

如何将qpixmap设置为空

  •  1
  • Mr. Developerdude  · 技术社区  · 6 年前

    我有一个函数可以接收 QPixmap 作为这样一个参数:

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

    如何将pixmap设置为“空”,以便 pixmap.isNull() 收益率 true 打电话后 myFunction() 在加载了内容的pixmap上?

    例子:

    //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 回复  |  直到 6 年前
        1
  •  3
  •   MrEricSir    6 年前

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

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

    文件 swap() (以上链接)声明:

    用这个像素地图交换其他像素地图。这个手术很快,而且 永不失败。

        2
  •  -1
  •   eyllanesc Yonghwan Shin    6 年前

    用这个

    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