【发布时间】:2020-05-05 15:01:14
【问题描述】:
我将一个插槽连接到 QClipboard 的 dataChanged 信号,以将剪贴板中的图像存储到变量 mimedata(reference):
void MyWin::clipboardDataChanged()
{
const QMimeData * m=QApplication::clipboard()->mimeData();
mimedata = new QMimeData();
foreach(QString format, m->formats())
{
QByteArray data = m->data(format);
if(format.startsWith("application/x-qt"))
{
int index1 = format.indexOf('"') + 1;
int index2 = format.indexOf('"', index1);
format = format.mid(index1, index2 - index1);
}
mimedata->setData(format, data);
}
}
并将 mimedata 恢复到剪贴板,如下所示:
void MyWin::onrestore()
{
QApplication::clipboard()->setMimeData(mimedata);
}
但是,剪贴板中的数据集似乎已损坏。如果我从剪贴板粘贴到 Paint,它会显示“剪贴板上的信息无法插入到 Paint。”我在剪贴板中打印了数据的格式,即“application/x-qt-image”。所以我认为它不是其他应用程序支持的格式。这是Qt的bug还是代码有缺陷?
【问题讨论】:
标签: qt clipboard mime-types mime qclipboard