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, которые являются векторной графикой, и один из которых, вероятно, подходит для большинства приложений.

Другие вопросы по тегам