有没有一种方法可以在同一pdf中打印QGraphicsView和QTableWidget或QTextEdit的一行

时间:2019-01-21 17:47:54

标签: c++ qgraphicsview qtablewidget qpainter qprinter

我正在尝试使用不同的类在PDF中打印两种项目。

例如,我要打印一行QTableWidgetQGraphicsViewQTextEditQGraphicsView的行。 不幸, -QGraphicsView可以通过将QPainter放入QPixmap pixmap并使用painter.drawPixmap(pixmap来用QTextEdit写入PDF,而, 通过将QTableWidgetQTextDocument doc放在doc.print(&printer);中并调用QTableWidget,可以将它们写入PDF。

这两个方法不兼容,当我强制将QTextEdit / QPixmap放在QTableWidget中时,它当然对应于小部件的屏幕截图,显然,它在我的PDF中不完整(我的QTextEditQTableWidget行很多)。

您知道一种可用于同时在PDF,QTextEditQGraphicsViewint pageWidth,pageHeight,size; QRect viewport; QPrinter printer; printer.setOutputFileName(filename); printer.setOutputFormat(QPrinter::PdfFormat); printer.setPageSize(QPrinter::A4); QCPPainter painter(&printer); pageWidth = printer.pageRect(QPrinter::DevicePixel).width(); pageHeight = printer.pageRect(QPrinter::DevicePixel).height(); size = (pageWidth < pageHeight) ? pageWidth : pageHeight; painter.setFont(QFont("times",18)); painter.drawText(30, 40, QString::fromStdString("Title")); printer.newPage(); viewport = ui->graph->viewport(); painter.translate(0, 200); ui->graph->setViewport(printer.pageRect()); ui->graph->toPainter(&painter, size/2, size/2); ui->graph->setViewport(viewport); painter.end(); 的行中打印的方法吗? 预先谢谢你

我的代码是QGraphicsView的以下代码

{{1}}

0 个答案:

没有答案