我希望我的Qt应用程序能够以兼容的方式将简单的矢量图形保存到剪贴板。在Windows上,我希望能够将图形粘贴到Microsoft Word或Powerpoint中。在Linux上我希望与Open Office兼容。
您会推荐哪种格式? Qt能否以简单的方式生成EMF? SVG是一种选择吗?
更新
我目前的计划是添加一段原生win32代码,以便在Windows上将图形渲染为emf。这段代码在linux上不可用。
答案 0 :(得分:4)
The QGraphicsView类及其关联的助手可以通过QPicture类(可以为EMF编写翻译器)呈现为QT图元文件格式,通过QSVGGenerator类呈现给SVG以及QPrinter的postscript / pdf。它还可以渲染到位图格式和各种其他目标。
AFAIK它没有通用的“渲染到EMF”工具 - 您必须写入其他类似QT图元文件并转换为EMF。如果您只需要图形基元的子集,则可能只需要在转换器中支持该子集。否则你可以去SVG,你可以直接从QT通过QSVGGenerator获得。
答案 1 :(得分:3)
我在这里有一个生成EMF的PyQt QPaintEngine类:https://github.com/jeremysanders/veusz/blob/master/document/emf_export.py。它使用pyemf库,但我认为移植到C ++会相当容易。遗憾的是,这些文件与OpenOffice不兼容,因为OO在EMF文件中具有非常破碎的路径支持。它还将文本转换为WYSIWYG的路径。