将一个Qlabel的QPixmap复制到另一个Qlabel

时间:2017-05-20 13:43:07

标签: c++ qt qt5

我正在尝试将QPixmap添加到从QLabel获取的QLabel,但是有错误:

这是代码

const QPixmap *tempPix = new QPixmap("");
tempPix = (label1->pixmap());
label2->setPixmap(tempPix);  //error cannot convert from const QPixmap* to const QPixmap&

如果我这样做:

const QPixmap tempPix("");
tempPix = (label1->pixmap()); //error cannot convert QPixmap and QPixmap*
label2->setPixmap(tempPix);

2 个答案:

答案 0 :(得分:3)

要将数据从指针对象复制到对象,必须使用*

QPixmap tempPix;
if(label1->pixmap()){
    tempPix = *label1->pixmap();
    label2->setPixmap(tempPix);
 }

答案 1 :(得分:1)

您可以按如下方式将其写在一行:

label2->setPixmap(*label1->pixmap());

请注意,*会将pixmap()返回的指针转换为引用。两者之间的差异在this thread中解释。

请注意,在第一个示例中,从不使用第一行中构造的QPixmap并发生内存泄漏。第二行更改指针值,而不是新构造对象的数据。