QT中复制的图片无法粘贴,如何解决?

QT中复制的图片无法粘贴

在QT6中用如下代码实现了图片的复制,只能粘贴到QQ聊天窗口,不能复制到文件夹中,这是为何

    QClipboard *clipboard = QApplication::clipboard();   //获取系统剪贴板指针
    clipboard->setPixmap(pix);    //复制

求各位指教!谢谢大家

回答不易,求求您采纳哦 感激不尽

当你复制图片到剪贴板时,剪贴板支持多种数据格式,比如文本、图片、HTML等。为了让复制的图片能够在文件夹中粘贴,你需要设置剪贴板的图片格式。

您可以在代码中使用以下代码设置图片格式:

QClipboard *clipboard = QApplication::clipboard();
QMimeData *mimeData = new QMimeData;
mimeData->setImageData(pix.toImage());
clipboard->setMimeData(mimeData);


您还可以使用其他图像格式,例如PNG,如下所示:

QClipboard *clipboard = QApplication::clipboard();
QMimeData *mimeData = new QMimeData;
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
pix.save(&buffer, "PNG");
mimeData->setData("image/png", ba);
clipboard->setMimeData(mimeData);


请注意,上面的代码在复制图像后需要使用“粘贴”命令粘贴图像到文件夹中。

你那样是复制文本,像这样才是复制图片:

//复制图像,可粘贴到画图中
    QImage *image=new QImage();
    image->load("G:/Qt_coding/clipboard/test.png");
 
    QClipboard *clip=QApplication::clipboard();
    clip->setPixmap(QPixmap::fromImage(*image));