0
我想呈現每個單獨的頁面中的qwidgets並將其保存爲pdf格式。我試着使用QPainter,QPrinter來並試圖呈現在論壇上建議:http://doc.qt.io/qt-4.8/printing.html#printing-widgets如何使用Qpainter將多個qwidgets打印到不同頁面中的pdf中?
這是我的示例代碼:
QPainter painter;
painter.begin(&printer);
for(int page = 0;page<no_of_pages;page++)
{
double xscale = printer.pageRect().width()/double(MyWidget[page]->width());
double yscale = printer.pageRect().height()/double(MyWidget[page]->height());
double scale = qMin(xscale, yscale);
painter.translate(printer.paperRect().x() + printer.pageRect().width()/2,
printer.paperRect().y() + printer.pageRect().height()/2);
painter.scale(scale, scale);
painter.translate(-MyWidget[page]->width()/2, -MyWidget[page]->height()/2);
MyWidget[page]->render(&painter);
if(page!=(no_of_pages-1))
printer.newPage();
}
painter.end();
當我執行上面的代碼,與在網頁的確切數量生成的PDF但只打印第一頁。當我檢查應用程序的輸出控制檯,以下消息打印:
QPainter::begin: Paint device returned engine == 0, type: 2
QPainter::setRenderHint: Painter must be active to set rendering hints
QPainter::setWorldTransform: Painter not active
QWidget::render: Cannot render with an inactive painter
QPainter::end: Painter not active, aborted
我試着google一下這些消息,但他們都不是相關的渲染qwidgets。任何幫助表示讚賞。謝謝。
它工作。你救了我的一天,非常感謝你。接受你的答案。 – Pramod