如何将具有透明度的QImage放在剪贴板上以供其他应用程序使用?

时间:2009-08-11 13:11:51

标签: c++ qt

我有一个QImage,我想把它放在剪贴板上,我可以做得很好。但是,当将数据粘贴到非Qt应用程序时,透明度会丢失。透明部分只是黑色。我尝试将数据保存为透明的PNG,但剪贴板上没有任何内容可用。

这是我到目前为止所做的:

QImage mergedImage = mergeSelectedItems(scene->items());

QMimeData* mimeData = new QMimeData();

QByteArray data;
QBuffer buffer(&data);
buffer.open(QIODevice::WriteOnly);
mergedImage.save(&buffer, "PNG");
buffer.close();
mimeData->setData("image/png", data);

clipboard->setMimeData( mimeData );

2 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。我换了

  

mimeData-> setData(“image / png”,data);

  

mimeData-> setData(“PNG”,data);

它适用于MS Office和Gimp,但不适用于OpenOffice

答案 1 :(得分:1)

只有少数(mime)类型适用于每个应用程序/操作系统组合 (例如文本和位图)

编辑:这实际上意味着:要确定这是一般问题还是与您的代码有关,您必须提供更多信息。