日志
实现了打印和预览功能
2017-11-04 08:59
QPrinter printer(QPrinter::HighResolution);
QPrintDialog dialog(&printer,QApplication::activeWindow()); if (dialog.exec()==QDialog::Accepted){ QPainter p(&printer); foreach(pageScene, pageSceneVector){ pageScene->render(&p, printer.paperRect(), sceneRect); if(pageScene != pageSceneVector.last()) printer.newPage(); } } 预览功能 主函数里添加 QPrinter printer(QPrinter::HighResolution); //自定义纸张大小 printer.setPageSize(QPrinter::A4); QPrintPreviewDialog preview(&printer, this); preview.setWindowTitle("打印预览"); preview.setWindowFlags(Qt::Window); preview.setMinimumSize(1200,800); connect(&preview, SIGNAL(paintRequested(QPrinter*)),&rp, SLOT(printPreviewSlot(QPrinter*))); preview.exec (); // rp 为 实现打印预览功能的类引用 调用函数 void QTEWordExpress::printPreviewSlot(QPrinter *printer) { QPainter p(printer); foreach(pageScene, pageSceneVector){ pageScene->render(&p, printer->paperRect(), sceneRect); if(pageScene != pageSceneVector.last()) printer->newPage(); } } |