盘锦做网站价格,南京网站开发南京乐识强,网上怎么开网店创业,推广软件免费文章目录 一、示意图二、实现部分代码总结 一、示意图 二、实现部分代码
//! 生成测试报告
void MainWindow::createPdf(QString filename, _pdf_msg_ msg, const QMapQString, int ok, const QMapQString, int err)
{//QDir dir;if(!dir.exis… 文章目录 一、示意图二、实现部分代码总结 一、示意图 二、实现部分代码
//! 生成测试报告
void MainWindow::createPdf(QString filename, _pdf_msg_ msg, const QMapQString, int ok, const QMapQString, int err)
{//QDir dir;if(!dir.exists(PdfFiles)) qDebug()dir.mkdir(PdfFiles);//创建PDF文件QString file_path filename;QFile pdfFile(file_path);bool isOpen pdfFile.open(QIODevice::WriteOnly);if(!isOpen){QMessageBox::warning(this,error, pdfFile.errorString());return;}QPdfWriter *pWriter new QPdfWriter(pdfFile);pWriter-setPageSize(QPagedPaintDevice::A4);pWriter-setResolution(300);pWriter-setPageMargins(QMarginsF(30, 30, 30, 30));QPainter *pPainter new QPainter(pWriter);QFont font[5] {QFont(宋体, 26, 60), QFont(宋体, 26, 61), QFont(宋体, 26, QFont::Normal), QFont(宋体, 26, QFont::Normal), QFont(宋体, 26, QFont::Normal)};font[0].setPixelSize(86);font[1].setPixelSize(61);font[2].setPixelSize(61);font[3].setPixelSize(42);font[4].setPixelSize(54);//qDebug()pPainter-viewport().width() pPainter-viewport().height();int nPDFWidth pPainter-viewport().width();int nPDFHeight pPainter-viewport().height();//标题int y 10;pPainter-setFont(font[0]);pPainter-drawText(QRect(0, y, nPDFWidth, 100), Qt::AlignCenter, msg.title);//画两条横线y 140;pPainter-setPen(QPen(QBrush(QColor(0, 0, 0)), 5));pPainter-drawLine(0, y, nPDFWidth, y);pPainter-drawLine(0, y 18, nPDFWidth, y 18);//y 60;pPainter-setFont(font[2]);pPainter-drawText(QRect(100, y, nPDFWidth/2, 70), Qt::AlignVCenter | Qt::AlignLeft, QString(产品名称: %1).arg(msg.product_name));pPainter-drawText(QRect(nPDFWidth/2 100 , y, nPDFWidth/2 - 100, 70), Qt::AlignVCenter | Qt::AlignLeft, QString(产品ID: %1).arg(msg.product_id));y 90;pPainter-drawText(QRect(100, y, nPDFWidth/2, 70), Qt::AlignVCenter | Qt::AlignLeft, QString(产品型号: %1).arg(msg.product_type));pPainter-drawText(QRect(nPDFWidth/2 100 , y, nPDFWidth/2 - 100, 70), Qt::AlignVCenter | Qt::AlignLeft, QString(测试时间: %1).arg(msg.test_time));//小标题y 90;pPainter-setFont(font[1]);pPainter-drawText(QRect(0, y, nPDFWidth, 80), Qt::AlignVCenter | Qt::AlignLeft, 触点比较结果);//画表格y 110;QStringList list;list序号输出点位名称结果序号输出点位名称结果;//int idx 1;int row 0;int column 0;if(caseType CASETYPE::L3U){foreach(QString s, g_RelayContact_3U){if(s 预留) listQString::number(idx)s;else if(err.contains(s)) listQString::number(idx)s不合格;else if(ok.contains(s)) listQString::number(idx)s合格;else listQString::number(idx)s未检测;idx;}row g_RelayContact_3U.length()/21;column 6;}else{foreach(QString s, g_RelayContact_6U){if(s 预留) listQString::number(idx)s;else if(err.contains(s)) listQString::number(idx)s不合格;else if(ok.contains(s)) listQString::number(idx)s合格;else listQString::number(idx)s未检测;idx;}row g_RelayContact_6U.length()/21;column 6;}pdfDrawForm(pWriter, pPainter, y, 0, row, column, 80, font[3], list);//!//小标题y 90;pPainter-setFont(font[1]);pPainter-drawText(QRect(0, y, nPDFWidth, 80), Qt::AlignVCenter | Qt::AlignLeft, 不合格点位);////画表格y 110;list.clear();list序号输出点位名称结果序号输出点位名称结果;//idx 1;row 0;column 0;if(caseType CASETYPE::L3U){for(auto it err.begin(); it ! err.end(); it){listQString::number(it.value())it.key()不合格;}row err.size()/21;column 6;}else{for(auto it err.begin(); it ! err.end(); it){listQString::number(it.value())it.key()不合格;}row err.size()/21;column 6;}pdfDrawForm(pWriter, pPainter, y, 0, row, column, 80, font[3], list);//pPainter-setFont(font[4]);pPainter-drawText(QRect(50, nPDFHeight, nPDFWidth/3, 80), Qt::AlignVCenter | Qt::AlignLeft, QString( 试验员: %1).arg(msg.tester_name));pPainter-drawText(QRect(nPDFWidth/350, nPDFHeight, nPDFWidth/3, 80), Qt::AlignVCenter | Qt::AlignLeft, QString( 检查员签字: ));pPainter-drawText(QRect(nPDFWidth/3*2, nPDFHeight, nPDFWidth/3, 80), Qt::AlignVCenter | Qt::AlignLeft, QString( 签字日期: ));//绘制完毕delete pPainter;delete pWriter;pdfFile.close();//通过其他PDF阅读器来打开PDFQDesktopServices::openUrl(QUrl::fromLocalFile(file_path));
}void MainWindow::pdfDrawForm(QPdfWriter *pWriter, QPainter *paint, int y, int horzBorder, int row, int column, int unitHeight, QFont font, QStringList list)
{paint-setFont(font);paint-setPen(QPen(QBrush(QColor(0, 0, 0)), 2));int Width paint-viewport().width() - horzBorder * 2;int unitWidth Width / column;for(int i0;irow;i) {int x horzBorder;for(int j0;jcolumn;j) {paint-drawText(QRect(x, y, unitWidth, unitHeight), Qt::AlignCenter, list[i*column j]);paint-drawRect(QRect(x, y, unitWidth, unitHeight));x unitWidth;}y unitHeight;if(y paint-viewport().height()){pWriter-newPage();y 10;}}
}总结
记录下用到的不常用知识点