我想知道是否有人知道将qt场景复制到剪贴板然后将其作为分组对象粘贴到word中的第一件事。我在场景中的所有内容都是图形文本项,省略号和线条。它似乎可以制作成形状,线条和文本,可以作为一个组粘贴到powerPoint中。我不知道从哪里开始!有任何想法吗?谢谢!
答案 0 :(得分:4)
我会以两种方式攻击这个:
从系统角度和办公室角度来看。
从系统的角度来看,你正在谈论剪贴板,mime类型,以及确切地存储在剪贴板中的内容。
从办公室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
现在......从那开始,我写了一些代码:
我在MainWindow UI表单中添加了QPushButton
和QTextEdit
。然后我去按钮的插槽并输入以下内容:
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中复制了一个椭圆形和一个矩形,
然后在我的程序中使用了按钮。这是它给我的输出:
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对象或其他图像。