QPixmap的深拷贝和浅拷贝

转载 2015年11月21日 15:13:26

在最近的项目中用到了QPixmap,涉及多线程操作QPixmap对象,为了简单,比如在线程1中构造了一个QPixmap对象,传入线程2,这时调用的函数为operator=(const QPixmap & pixmap),对于不了解QPixmap类的这个函数,误以为会进行深拷贝,导致后面的程序出错问题!该函数利用了浅拷贝,保存了有效数据的地址!如果要进行深拷贝,则需要调用QPixmap的另外一个成员函数copy!

下面对常用来拷贝QPixmap的函数进行了说明:

  1. QPixmap::QPixmap(const QPixmap & pixmap)                //拷贝构造函数,深拷贝  
  2. QPixmap & QPixmap::operator=(const QPixmap & pixmap)    //浅拷贝  
  3. QPixmap QPixmap::copy(const QRect & rectangle = QRect()) const  //深拷贝  

FROM: http://blog.csdn.net/a812073479/article/details/46123761


Qt中截图功能的实现

提要需求:加载一张图片并显示,可以放大缩小,可以截取图片的某个矩形并保存。原以为蛮简单的一个功能,其实还是有点小复杂。最简单Qt图片浏览器可以参考Qt自带的Demo:Image Viewer Exam...
  • qp120291570
  • qp120291570
  • 2014年12月17日 21:35
  • 5161

Qt 常用类 (7)—— QPixmap

QPixmap 类代表图像,实现在 QtGui 共享库中。       构造       以下构造函数生成的 QPixmap 对象为空图像: QPixmap(); // 构造一个大小为 ...
  • HMSIWTV
  • HMSIWTV
  • 2012年05月12日 19:22
  • 26676

QPixmap值LoadFromData

函数原型: bool loadFromData(const uchar * data, uint len, const char * format = 0, Qt::ImageConversionF...
  • a812073479
  • a812073479
  • 2015年05月16日 21:32
  • 4879

QImage的浅拷贝与深拷贝

首先简单说说什么是浅拷贝和深拷贝:浅拷贝就比如像引用类型,而深拷贝就比如值类型,即浅拷贝是共用一块内存的,而深拷贝是复制一份内容。  我们再来看看QImage类的几个构造函数:// 浅拷贝 QImag...
  • FreeApe
  • FreeApe
  • 2016年09月21日 23:25
  • 2810

[转]QImage的浅拷贝与深拷贝 -- Deep Copy

QImage
  • tony2278
  • tony2278
  • 2017年09月12日 21:34
  • 326

QImage的浅拷贝和深拷贝(转自http://www.voidcn.com/blog/freeape/article/p-6210118.html)

QImage的浅拷贝与深拷贝  FreeApe 2016-09-21  QT   31原文链接   首先简单说说什么是浅拷贝和深拷贝:浅拷贝就比如像引用类型,而深拷贝...
  • cristinaSophia
  • cristinaSophia
  • 2017年01月13日 20:31
  • 230

深拷贝与浅拷贝简单实现及原理

代码一:let obj1={ name:'li', skill:'web' }let o={}; for(let i in obj1){ o[i]=obj1[i]; } //c...
  • wis2007
  • wis2007
  • 2017年08月22日 17:36
  • 192

OpenCV中矩阵类详解之三:CvMat,Mat和IplImage之间的转化和拷贝

Mat的优势是Mat自动内存管理,不需要显式释放(当然也可以手动调用release()方法强制Mat矩阵数据释放) CvMat则需要调用cvReleaseMat(&cvmat)来释放 //CvMa...
  • u012564690
  • u012564690
  • 2014年01月02日 16:28
  • 29064

QImage与QPixmap

http://www.360doc.com/content/12/0228/09/7899729_190188690.shtml
  • tianzhijiaozi19
  • tianzhijiaozi19
  • 2016年09月02日 18:24
  • 214

QImage对一般图像的处理

Qt中QImage类封装了对于一般图像像素级的操作,图像显示则使用QPixmap。 本文说说对一般图像(常见格式,图像不大)的处理,比如将彩色图像处理为灰度图像。首先要获得源图像数据,对源图像数据进...
  • imxiangzi
  • imxiangzi
  • 2015年11月21日 15:12
  • 5066
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QPixmap的深拷贝和浅拷贝
举报原因:
原因补充:

(最多只允许输入30个字)