Qt5是否会破坏QwtPlotRenderer的postscript支持?

时间:2015-09-22 11:55:33

标签: c++ qt postscript qwt

我正在尝试使用QwtPlotRendererQwtPlot的图像保存为postscript文件。这似乎在documentation中受支持,但每当我使用“.ps”扩展名进行渲染时,都不会发生任何事情。

经过一些研究,看来Qt5 removed postscript support from QPrinter。这是否意味着Qwt 6.1.2在使用Qt 5时无法呈现为后记?

1 个答案:

答案 0 :(得分:2)

不幸的是,确实如此。

如果我们查看qwt_plot_renderer.cpp源代码,我们可以看到postscript支持没有扩展到Qt版本5及更高版本,几乎可以肯定,因为它建立在QPrinter::PostScriptFormat上,已从Qt。

中删除
// Excerpt from qwt_plot_renderer.cpp (ln 257)
else if ( fmt == "ps" )
{
#if QT_VERSION < 0x050000
#ifndef QT_NO_PRINTER
        QPrinter printer;
        printer.setOutputFormat( QPrinter::PostScriptFormat );
        printer.setColorMode( QPrinter::Color );
        printer.setFullPage( true );
        printer.setPaperSize( sizeMM, QPrinter::Millimeter );
        printer.setDocName( title );
        printer.setOutputFileName( fileName );
        printer.setResolution( resolution );

        QPainter painter( &printer );
        render( plot, &painter, documentRect );
#endif
#endif
}

也就是说,Qwt支持Qt 5的各种便携式格式,包括PDF和SVG,它们都是矢量图形,其中一种可能适用于大多数应用程序。