我想在下一页打印QwtPlot对象(来自Qwt库)和QTextBrowser(QTextEdit的子类)的内容。我还需要打印预览。我使用以下代码:
void MainWindow::printPressed()
{
QPrintPreviewDialog * printPreview = new QPrintPreviewDialog(this);
connect(printPreview, SIGNAL(paintRequested(QPrinter *)), this, SLOT(doPrint(QPrinter *)));
printPreview->exec();
}
void MainWindow::doPrint(QPrinter * printer)
{
plotRenderer.renderTo(qwtPlot, *printer);
printer->newPage();
textBrowser->print(printer);
}
实际打印工作正常。但是QPrintPreviewDialog只显示textBrowser的内容,并且调用newPage()进行打印预览会返回false。当我尝试两次打印QTextBrowswer时,会发生完全相同的事情(所以我不认为该bug与Qwt有关):
void MainWindow::doPrint(QPrinter * printer)
{
techInfo->print(printer);
printer->newPage();
techInfo->print(printer);
}
我尝试使用QPrintPrevieWidget并获得相同的行为。有没有解决方法?