Использую Qt 5.4.
Задача в том, что нужно распечатать график (QwtPlot из библиотеки http://qwt.sourceforge.net/) и на следующей странице - содержимое QTextBrowser (производный объект от QTextEdit). И чтобы при этом работал предпросмотр через QPrintPreviewDialog.
Проблема в том, что для печати графика клас QwtPlotRenderer http://qwt.sourceforge.net/class_qwt_plot_renderer.html#a44ff336a2d3d955ac17b1daa5fca3c31 объект QPainter. (Там есть методы, где подойдёт и QPrinter, но мне нужен именно этот - для указания области вывода) А для печати QTextBrowser/QTextEdit http://doc.qt.io/qt-5/qtprintsupport-index.html (см. последний абзац).
Поэтому если использовать такой код
QPainter printPainter;
printPainter.begin(printer);
plotRenderer.render(qwtPlot, painter, plotRect);
printer->newPage();
textbrowser->print(printer);
printPainter.end();
QPainter printPainter;
printPainter.begin(printer);
plotRenderer.render(qwtPlot, painter, plotRect);
printer->newPage();
printPainter.end();
textbrowser->print(printer);
Видится два варианта:
1. Нарисовать документ, используя пэинтер:
http://doc.qt.io/qt-5/qtextdocument.html#drawContents
2. Вставить нарисованный график в документ и распечатать документ целиком
http://doc.qt.io/qt-5/qtextcursor.html#insertImage-4
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)