我希望我的Qt应用程序能够以兼容的方式将简单的矢量图形保存到剪贴板。在Windows上,我希望能够将图形粘贴到Microsoft Word或Powerpoint中。在Linux上我希望与Open Office兼容。

您会推荐哪种格式? Qt能否以简单的方式生成EMF? SVG是一种选择吗?

更新

我目前的计划是添加一段原生win32代码,以便在Windows上将图形渲染为emf。这段代码在linux上不可用。

有帮助吗?

解决方案

QGraphicsView 类及其关联的帮助程序可以呈现为QT图元文件格式通过 QPicture 课程(您可以为EMF编写翻译) ,通过 QSVGGenerator 课程到SVG,通过 QPrinter 。它还可以渲染到位图格式和各种其他目标。

AFAIK它没有通用的“渲染到EMF”工具 - 您必须写入其他类似QT图元文件并转换为EMF。如果您只需要图形基元的子集,则可能只需要在转换器中支持该子集。否则你可以去SVG,你可以直接从QT通过QSVGGenerator获得。

其他提示

我在这里有一个生成EMF的PyQt QPaintEngine类: https:/ /github.com/jeremysanders/veusz/blob/master/document/emf_export.py 。它使用pyemf库,但我认为移植到C ++会相当容易。遗憾的是,这些文件与OpenOffice不兼容,因为OO在EMF文件中具有非常破碎的路径支持。它还将文本转换为WYSIWYG的路径。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top