2
我可以將QPixmap移動到QLabel中嗎? 我還沒有發現任何支持 移動語義的成員函數,或者某些函數可能會將QPixmap移動到QLabel 中,即使在Qt5中。QLabel的原始解決方案是將您傳入的QPixmap複製到函數中。將QPixmap移動到QLabel但不復制
根據宣言
setPixmap(QPixmap const &)
常量&不會增加引用計數(任何錯誤?) 我不認爲他們將共享相同的資源
和實現看起來更像拷貝比移動(Qt4.8.3)
void QLabel::setPixmap(const QPixmap &pixmap)
{
Q_D(QLabel);
if (!d->pixmap || d->pixmap->cacheKey() != pixmap.cacheKey()) {
d->clearContents();
d->pixmap = new QPixmap(pixmap);
}
if (d->pixmap->depth() == 1 && !d->pixmap->mask())
d->pixmap->setMask(*((QBitmap *)d->pixmap));
d->updateLabel();
}
看起來像QLabel將創建一個全新的QPixmap副本 如果d-> pixmap不指向任何東西或者它們不具有相同的cacheKey。
但我想要的行爲是一樣的東西
QPixmap *temp = origin_pixmap;
origin_pixmap = new_pixmap;
temp->release()
或
std::string A, B;
//.............
A = std::move(B);
謝謝,我會看看它 – StereoMatching