我想知道是否有人知道将 qt 场景复制到剪贴板然后能够将其作为分组对象粘贴到 word 中的第一件事。我的场景中只有图形文本项、椭圆和线条。它似乎可以制成形状、线条和文本,可以作为一个组粘贴到 PowerPoint 中。我不知道从哪里开始!有任何想法吗?谢谢!
1 回答
我会以两种方式对此进行攻击:
从系统角度和office sdk 角度。
从系统的角度来看,您正在谈论剪贴板、mime 类型以及剪贴板中存储的确切内容。
从 office sdk 的角度来看,您正在谈论它如何存储预渲染元素。
快速浏览一下,我在 MS Office SDK 中找到了以下信息:
http://msdn.microsoft.com/en-US/library/office/gg278315
http://msdn.microsoft.com/en-US/library/office/cc850847
这在剪贴板管理器上:
http://en.wikipedia.org/wiki/Clipboard_manager
这用于与剪贴板的 Qt 连接:
http://qt-project.org/doc/qt-4.8/qclipboard.html#details
现在......从那开始,我写了一小段代码:
我将 aQPushButton
和 a添加QTextEdit
到 MainWindow UI 窗体。然后我走到按钮的插槽并输入以下内容:
void MainWindow::on_pushButton_clicked()
{
ui->textEdit->clear();
QClipboard *c = QApplication::clipboard();
foreach(QString format, c->mimeData()->formats())
{
ui->textEdit->append(format);
ui->textEdit->append(c->mimeData()->data(format));
}
ui->textEdit->append("done");
}
我从 Office 2010 的 PowerPoint 中复制了一个椭圆和一个矩形,
然后在我的程序中使用按钮。这是它给我的输出:
application/x-qt-windows-mime;value="Preferred DropEffect"
application/x-qt-windows-mime;value="InShellDragLoop"
application/x-qt-windows-mime;value="PowerPoint 12.0 Internal Shapes"
ÀN
application/x-qt-windows-mime;value="Object Descriptor"
j
application/x-qt-windows-mime;value="Art::GVML ClipFormat"
PK
application/x-qt-windows-mime;value="PNG"
PNG
application/x-qt-image
application/x-qt-windows-mime;value="JFIF"
ÿØÿà
application/x-qt-windows-mime;value="GIF"
GIF89aã
application/x-qt-windows-mime;value="PowerPoint 12.0 Internal Theme"
Hý©
application/x-qt-windows-mime;value="PowerPoint 12.0 Internal Color Scheme"
Pý©
done
所以它应该是可行的,但你需要弄清楚它们在可读明文之间编码的一些东西是什么。
希望有帮助。
PS 尝试将 Qt 元素保存为 SVG 对象或剪贴板上的其他图像可能会更好。