Vector graphics clipboard format for Qt

元气小坏坏 提交于 2020-01-14 07:57:51

问题


I want my Qt application to be able to save simple vector graphics to clipboard in a compatible way. On windows I want to be able to paste the graphics into Microsoft Word or Powerpoint. On Linux I want to be compatible with the Open Office.

Which format would you recommend? Can Qt generate EMF in an easy way? Is SVG an option?

Update:

My current plan is to add a piece of native win32 code to render the graphics to emf on windows. This code will not be available on linux.


回答1:


The QGraphicsView class and its associated helpers can render to a QT metafile format through the QPicture class (for which you could write a translator to EMF), to SVG through the QSVGGenerator class and to postscript/pdf through QPrinter. It can also render to bitmap formats and various other targets.

AFAIK it doesn't have a generic 'render to EMF' facility - you would have to write to something else like the QT Metafile and convert to EMF. If you only need a subset of the graphics primitives you might only need to support that subset in the translator. Otherwise you could go from SVG, which you can get directly from QT through QSVGGenerator.




回答2:


I have an EMF-generating PyQt QPaintEngine class here: https://github.com/jeremysanders/veusz/blob/master/document/emf_export.py. It uses the pyemf library, but I think it would be fairly easy to port to C++. Unfortunately the files are not compatible with OpenOffice as OO has pretty broken path support in EMF files. It also converts text to paths for WYSIWYG.



来源:https://stackoverflow.com/questions/236627/vector-graphics-clipboard-format-for-qt

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!