c++ - Qt5 是否破坏了 QwtPlotRenderer postscript 支持?

标签 c++ qt postscript qwt

我正在尝试使用 QwtPlotRendererQwtPlot 的图像保存为 postscript 文件。这似乎在 documentation 中受支持。 ,但是每当我使用“.ps”扩展名进行渲染时,什么也没有发生。

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

最佳答案

不幸的是,确实如此。

如果我们查看 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,它们都是 vector 图形,其中一种可能适合大多数应用程序。

关于c++ - Qt5 是否破坏了 QwtPlotRenderer postscript 支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32716235/

相关文章:

c++ - 从二进制文件字节到整数

c++ - 从我的 llvm pass 发出 llvm-ir 字节码

c++ - qt中的线程同步

windows - 如何为我的应用程序设置 Windows 10 通知首选项

latex - 检测 LaTeX 中的输出设备

后记:如何在显示之前将字符串切割一定宽度?

c# - 使用 GhostScript 打印 PDF

c++ - 使用 OpenSSL 1.1 的 SHA256 HMAC 未编译

c++ - C++中的动态数组

c++ - Qt正则表达式在[]之间分割字符串