Qt5 нарушает поддержку постскриптума QwtPlotRenderer?
Я пытаюсь использовать QwtPlotRenderer
сохранить изображение QwtPlot
как постскриптум Это подтверждается в документации, однако всякий раз, когда я выполняю рендеринг с расширением ".ps", ничего не происходит.
После некоторых исследований выяснилось, что Qt5 удалил поддержку postscript изQPrinter
, Означает ли это, что Qwt 6.1.2 не может отображаться как postscript при использовании Qt 5?
1 ответ
К сожалению, да, это так.
Если мы посмотрим на 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, которые являются векторной графикой, и один из которых, вероятно, подходит для большинства приложений.