QT打印时,以VS调试启用,调用到打印时会崩溃,直接运行就不崩了,QT-5.15.2 VS2019
打印预览不崩,当点击右上角打印时,运行到slotPintPreview的histPainter.begin(printer)这一行就崩了。
QPrinter printer;
printer.setOutputFormat(QPrinter::NativeFormat);
printer.setPageSize(QPagedPaintDevice::A4);
printer.setOrientation(QPrinter::Portrait);
printer.printerName();//获取默认打印机
printer.setNumCopies(1);
printer.setPageOrder(QPrinter::FirstPageFirst);//设置打印顺序
printer.setPageMargins(6, 6, 6, 6, QPrinter::Millimeter);
printer.setPageSize(QPrinter::A4);
QPrintPreviewDialog* pPreviewDialog = new QPrintPreviewDialog(&printer);
connect(pPreviewDialog, &QPrintPreviewDialog::paintRequested, this, &HistoryDataWin::slotPintPreview);//关联打印预览的内容
pPreviewDialog->resize(1000, 900);
pPreviewDialog->exec();
delete pPreviewDialog;
pPreviewDialog = nullptr;
void HistoryDataWin::slotPintPreview(QPrinter* printer)
{
QPainter histPainter;
//printer->setPageSize(QPrinter::A4);
int posPos = 0;
int monitorPos = 0;
histPainter.begin(printer);
paintHist(&histPainter, posPos, monitorPos);
histPainter.end();
}