void data_plot::saveSVG() { if (save_file_name.length() > 0) { QSvgGenerator svg; svg.setFileName((save_file_name + ".svg").c_str()); svg.setSize(QSize(600, 450)); myPlot.print(svg); svg.setFileName((save_file_name + "_2.svg").c_str()); } }
void struct3d::saveImage() { // view->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); // QPixmap pixmap(view->size()); // QPainter painter(&pixmap); // painter.setRenderHint(QPainter::Antialiasing); // view->render(&painter); // pixmap.save(QApplication::applicationDirPath() + "/image.png", "PNG",100); QString fileName = QFileDialog::getSaveFileName((QWidget *) this, tr("Save as:"), "structure.svg", tr("SVG files (*.svg);;All Files (*)")); QRectF rect = scene->sceneRect(); QSvgGenerator generator; generator.setFileName(fileName); generator.setSize(QSize(scene->sceneRect().width(), scene->sceneRect().height())); generator.setViewBox(scene->sceneRect()); generator.setTitle(tr("Title")); generator.setDescription(tr("Description")); QPainter painter; painter.begin(&generator); scene->render(&painter, QRectF(), rect); painter.end(); }
void MapWidget::exportSVGToDisplayCluster() { if(g_dcSocket != NULL && svgTmpFile_.open()) { QSvgGenerator generator; generator.setFileName(svgTmpFile_.fileName()); generator.setResolution(90); generator.setSize(QSize(1400, 1200)); generator.setViewBox(viewRect_); QPainter painter; painter.begin(&generator); // set logical coordinates of the render window painter.setWindow(viewRect_.toRect()); // draw a black background painter.setBrush(QBrush(QColor::fromRgbF(0,0,0,1))); painter.drawRect(QRect(QPoint(-107,37), QPoint(-93,25))); renderAll(&painter, false); painter.end(); put_flog(LOG_DEBUG, "wrote %s", svgTmpFile_.fileName().toStdString().c_str()); // now, send it to DisplayCluster sendSVGToDisplayCluster((svgTmpFile_.fileName()).toStdString(), (QString("ExerciseMap-") + QString::number(index_) + ".svg").toStdString()); } }
void RealTimeMultiSampleArrayWidget::onMakeScreenshot(const QString& imageType) { // Create file name QString sDate = QDate::currentDate().toString("yyyy_MM_dd"); QString sTime = QTime::currentTime().toString("hh_mm_ss"); if(!QDir("./Screenshots").exists()) { QDir().mkdir("./Screenshots"); } if(imageType.contains("SVG")) { QString fileName = QString("./Screenshots/%1-%2-DataView.svg").arg(sDate).arg(sTime); // Generate screenshot QSvgGenerator svgGen; svgGen.setFileName(fileName); svgGen.setSize(m_pTableView->size()); svgGen.setViewBox(m_pTableView->rect()); m_pTableView->render(&svgGen); } if(imageType.contains("PNG")) { QString fileName = QString("./Screenshots/%1-%2-DataView.png").arg(sDate).arg(sTime); QPixmap pixMap = QPixmap::grabWidget(m_pTableView); pixMap.save(fileName); } }
void MainWindow::printsvg() { // QString fileName(_record->name2display().append(".svg").c_str()); QString fileName("bfviewer.svg"); const QList<QByteArray> imageFormats = QImageWriter::supportedImageFormats(); QStringList filter; filter += "SVG Documents (*.svg)"; fileName = QFileDialog::getSaveFileName( this, "Export File Name", fileName, filter.join(";;"), NULL, QFileDialog::DontConfirmOverwrite); if (!fileName.isEmpty()) { QSvgGenerator generator; QwtPlotRenderer plotrender; generator.setFileName( fileName ); generator.setSize(_gridPlot->size()); plotrender.renderTo(_gridPlot->p,generator); } }
void ExportWizard::saveSvg() { if (m_ui->svgFilePath->text().isEmpty()) { QMessageBox::warning(this, tr("No file selected !"), tr("You need to choose a file path for saving.")); return; } QString svgFilePath = m_ui->svgFilePath->text(); // get the rendering size QRect svgRect(m_canvas->sceneRect().toRect()); // create the SVG writer QSvgGenerator generator; generator.setFileName(svgFilePath); generator.setSize(svgRect.size()); generator.setResolution(physicalDpiX()); generator.setViewBox(svgRect); generator.setTitle(m_canvas->titleText()); generator.setDescription(tr("Created with %1").arg(QCoreApplication::applicationName() + " " + QCoreApplication::applicationVersion())); // paint over the writer QPainter painter(&generator); painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform, true); m_canvas->renderVisible(&painter, svgRect, svgRect, Qt::IgnoreAspectRatio, !m_ui->svgAsIsBox->isChecked()); painter.end(); }
void NativeRenderDialog::exportSVG() { QString s; QFileDialog dlg(NULL, tr("Output filename"), QString("%1/%2.svg").arg(M_PREFS->getworkingdir()).arg(tr("untitled")), tr("SVG files (*.svg)") + "\n" + tr("All Files (*)")); dlg.setFileMode(QFileDialog::AnyFile); dlg.setDefaultSuffix("svg"); dlg.setAcceptMode(QFileDialog::AcceptSave); if (dlg.exec()) { if (dlg.selectedFiles().size()) s = dlg.selectedFiles()[0]; } // QString s = QFileDialog::getSaveFileName(NULL,tr("Output filename"),"",tr("SVG files (*.svg)")); if (s.isNull()) return; QSvgGenerator svgg; QRect theR = thePrinter->pageRect(); theR.moveTo(0, 0); svgg.setSize(theR.size()); svgg.setFileName(s); #if QT_VERSION >= 0x040500 svgg.setViewBox(theR); #endif QPainter P(&svgg); P.setRenderHint(QPainter::Antialiasing); RendererOptions opt = options(); opt.options |= RendererOptions::PrintAllLabels; render(P, theR, opt); }
//! [save SVG] void Window::saveSvg() { QString newPath = QFileDialog::getSaveFileName(this, tr("Save SVG"), path, tr("SVG files (*.svg)")); if (newPath.isEmpty()) return; path = newPath; //![configure SVG generator] QSvgGenerator generator; generator.setFileName(path); generator.setSize(QSize(200, 200)); generator.setViewBox(QRect(0, 0, 200, 200)); generator.setTitle(tr("SVG Generator Example Drawing")); generator.setDescription(tr("An SVG drawing created by the SVG Generator " "Example provided with Qt.")); //![configure SVG generator] //![begin painting] QPainter painter; painter.begin(&generator); //![begin painting] displayWidget->paint(painter); //![end painting] painter.end(); //![end painting] }
void FilterWindow::onBtnExportFilterPlot() { // Open file dialog QDate date; QString fileName = QFileDialog::getSaveFileName(this, "Save filter plot", QString("%1/%2_%3_%4_FilterPlot").arg(QStandardPaths::writableLocation(QStandardPaths::DesktopLocation)).arg(date.currentDate().year()).arg(date.currentDate().month()).arg(date.currentDate().day()), tr("Vector graphic(*.svg);;Images (*.png)")); if(!fileName.isEmpty()) { // Generate screenshot if(fileName.contains(".svg")) { QSvgGenerator svgGen; svgGen.setFileName(fileName); QRectF rect = m_pFilterPlotScene->itemsBoundingRect(); svgGen.setSize(QSize(rect.width(), rect.height())); //svgGen.setViewBox(QRect(0, 0, rect.width(), rect.height())); QPainter painter(&svgGen); m_pFilterPlotScene->render(&painter); } if(fileName.contains(".png")) { m_pFilterPlotScene->setSceneRect(m_pFilterPlotScene->itemsBoundingRect()); // Re-shrink the scene to it's bounding contents QImage image(m_pFilterPlotScene->sceneRect().size().toSize(), QImage::Format_ARGB32); // Create the image with the exact size of the shrunk scene image.fill(Qt::transparent); // Start all pixels transparent QPainter painter(&image); m_pFilterPlotScene->render(&painter); image.save(fileName); } } }
void ExportImageDialog::exportSvg(const QString &fileName) { SkyMap *map = m_KStars->map(); // export as SVG QSvgGenerator svgGenerator; svgGenerator.setFileName(fileName); svgGenerator.setTitle(i18n("KStars Exported Sky Image")); svgGenerator.setDescription(i18n("KStars Exported Sky Image")); svgGenerator.setSize(QSize(map->width(), map->height())); svgGenerator.setResolution(qMax(map->logicalDpiX(), map->logicalDpiY())); svgGenerator.setViewBox(QRect(0, 0, map->width(), map->height())); SkyQPainter painter(m_KStars, &svgGenerator); painter.begin(); map->exportSkyImage(&painter); if(m_DialogUI->addLegendCheckBox->isChecked()) { addLegend(&painter); } painter.end(); }
int main(int argc, char *argv[]) { QApplication app(argc, argv); QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); QSvgGenerator svgGen; svgGen.setFileName("test.svg"); QRectF rectangle(10.0, 20.0, 80.0, 60.0); QPainter painter; painter.begin(&svgGen); QPen pen(Qt::red); painter.setPen(pen); painter.drawEllipse(rectangle); rectangle.moveRight(100); painter.drawRect(rectangle); rectangle.moveRight(100); QRectF source(0.0, 0.0, 70.0, 40.0); QImage image("Greenstone.bmp"); painter.drawImage(rectangle, image, source); painter.end(); return 0; }
void NMGPlotWidget::exportToSVG(QString filePath) { if(!filePath.endsWith(".svg", Qt::CaseInsensitive)) filePath.append(".svg"); QSvgGenerator svgGen; svgGen.setFileName(filePath); svgGen.setSize(QSize(width()-4,height()-4)); QPainter p(&svgGen); render(&p); }
void MultiLayer::exportSVG(const QString &fname) { QSvgGenerator generator; generator.setFileName(fname); generator.setSize(canvas->size()); generator.setViewBox(QRect(QPoint(0, 0), generator.size())); generator.setResolution(96); // FIXME hardcored generator.setTitle(this->name()); exportPainter(generator); }
void setupGenerator(QSvgGenerator& generator, QString& templateName) { generator.setFileName(templateName + ".svg"); generator.setSize(QSize(256, 256)); generator.setViewBox(QRectF(0, 0, 256, 256)); generator.setTitle("VPL " + templateName); generator.setDescription("This image was generated by an helper tool part of Aseba, get it at http://thymio.org"); }
void OpenInfraPlatform::UserInterface::Alignment2DScene::exportToFile(QWidget* parent) { QString filter; QString fn = QFileDialog::getSaveFileName(parent, tr("Save Vertical Alignment as..."), QString(), tr("PNG File (*.png);; JPG File (*.jpg);; PDF File (*.pdf);; SVG File (*.svg)"), &filter); if(fn.isEmpty()) return; if(filter == "PNG File (*.png)" || filter == "JPG File (*.jpg)") { QImage image(sceneRect().size().toSize(), QImage::Format::Format_ARGB32); image.fill(Qt::darkGray); QPainter painter(&image); painter.setRenderHints(QPainter::Antialiasing); render(&painter); image.save(fn); } else { QPrinter printer; QSvgGenerator svgGen; QPaintDevice* device; if(filter == "PDF File (*.pdf)") { printer.setResolution(QPrinter::HighResolution); printer.setPageSize( QPrinter::A4 ); printer.setOrientation( QPrinter::Landscape ); printer.setOutputFormat( QPrinter::PdfFormat ); printer.setOutputFileName(fn); device = &printer; } else if(filter == "SVG File (*.svg)") { QRectF rect = sceneRect(); svgGen.setFileName(fn); svgGen.setSize(QSize(rect.width(),rect.height())); svgGen.setViewBox(QRect(0,0,rect.width(),rect.height())); svgGen.setTitle("Vertical Alignment"); device = &svgGen; } else { return; } QPainter painter(device); configureColors(A2D_DrawState::A2D_Print); render(&painter); configureColors(A2D_DrawState::A2D_Draw); } }
Q_DECL_EXPORT void gammaray_save_widget_to_svg(QWidget *widget, const QString &fileName) { QSvgGenerator svg; svg.setFileName(fileName); svg.setSize(widget->size()); svg.setViewBox(QRect(QPoint(0, 0), widget->size())); QPainter painter(&svg); widget->render(&painter); painter.end(); }
void SceneImageExporter::ExportToSVG(QGraphicsScene *scene, QString fileName) { QSvgGenerator *generator = new QSvgGenerator(); generator->setResolution(72); generator->setSize(QSize( (int)scene->sceneRect().width(), (int)scene->sceneRect().height())); generator->setFileName(fileName); QPainter painter(generator); painter.setBrush(QColor("white")); scene->render(&painter); }
void Matrix::exportSVG(const QString& fileName) { int width = numRows(); int height = numCols(); QSvgGenerator svg; svg.setFileName(fileName); svg.setSize(QSize(width, height)); QPainter p(&svg); p.drawImage (QRect(0, 0, width, height), d_matrix_model->renderImage()); p.end(); }
// Save the file in the editor to a file at fileName void svgSave(const QString &fileName, NoteEditor *editor) { QSvgGenerator generator; generator.setFileName(fileName); generator.setSize(editor->size()); generator.setViewBox(QRect(0, 0, editor->width(), editor->height())); generator.setTitle("Ink"); generator.setDescription("ThreeRing ink"); QPainter painter; painter.begin(&generator); editor->paint(painter); painter.end(); }
void QGVPage::saveSvg(QString filename) { // TODO: We only have m_vpPage because constructor gets passed a view provider... //NOTE: this makes wrong size pages in low-Rez TechDraw::DrawPage *page( m_vpPage->getDrawPage() ); const QString docName( QString::fromUtf8(page->getDocument()->getName()) ); const QString pageName( QString::fromUtf8(page->getNameInDocument()) ); QString svgDescription = tr("Drawing page: ") + pageName + tr(" exported from FreeCAD document: ") + docName; QSvgGenerator svgGen; svgGen.setFileName(filename); svgGen.setSize(QSize((int) Rez::guiX(page->getPageWidth()), (int) Rez::guiX(page->getPageHeight()))); //expects pixels, gets mm //"By default this property is set to QSize(-1, -1), which indicates that the generator should not output // the width and height attributes of the <svg> element." >> but Inkscape won't read it without size info?? svgGen.setViewBox(QRect(0, 0, Rez::guiX(page->getPageWidth()), Rez::guiX(page->getPageHeight()))); svgGen.setResolution(Rez::guiX(25.4)); // docs say this is DPI. 1dot/mm so 25.4dpi svgGen.setTitle(QObject::tr("FreeCAD SVG Export")); svgGen.setDescription(svgDescription); Gui::Selection().clearSelection(); toggleMarkers(false); //fiddle cache, vertices, frames, etc toggleHatch(false); scene()->update(); viewport()->repaint(); double width = Rez::guiX(page->getPageWidth()); double height = Rez::guiX(page->getPageHeight()); QRectF sourceRect(0.0,-height,width,height); QRectF targetRect; Gui::Selection().clearSelection(); QPainter p; p.begin(&svgGen); scene()->render(&p, targetRect,sourceRect); p.end(); toggleMarkers(true); toggleHatch(true); scene()->update(); viewport()->repaint(); }
void plotWindow::exportSvg() { QString fileName = QFileDialog::getSaveFileName(plot, "Export to SVG", "plot.svg", "SVG files (*.svg);;All files (*)"); if( !fileName.isEmpty() ) { QRectF sourceRect = plotdata.sceneRect(); QRectF targetRect = QRectF(0.0, 0.0, sourceRect.size().width(), sourceRect.size().height()); QSvgGenerator printer; printer.setFileName(fileName); printer.setSize(sourceRect.size().toSize()); printer.setViewBox(targetRect); QPainter painter(&printer); plotdata.render(&painter, targetRect, sourceRect); painter.end(); } }
void AnimatorView::save() { QString fileName = ""; fileName = QFileDialog::getSaveFileName(); if(fileName == "") { return; } QSvgGenerator svgGen; svgGen.setFileName(fileName); svgGen.setSize(QSize(size())); QPainter painter(&svgGen); painter.setRenderHint(QPainter::Antialiasing); render(&painter); }
bool Renderer::renderToSvg() { if (svgFile.isEmpty()) { qDebug() << "No svg file set"; return false; } QSvgGenerator svg; svg.setFileName(svgFile); QPainter p; p.begin(&svg); target->render(&p); p.end(); return true; }
void DrawSVG::Write(QString filename) { if(!canvas) return; QSvgGenerator generator; generator.setFileName(filename); generator.setSize(QSize(canvas->width(), canvas->height())); generator.setTitle("MLDemos screenshot"); generator.setDescription("Generated with MLDemos"); QPainter painter; painter.begin(&generator); // we need to paint the different layers: // confidence map // samples + trajectories + reward canvas->PaintStandard(painter, true); if(canvas->bDisplayLearned) { // learned model painter.setBackgroundMode(Qt::TransparentMode); if(classifier) DrawClassificationSamples(canvas, painter, classifier, classifierMulti); if(regressor) drawRegr->DrawModel(canvas, painter, regressor); if(dynamical) drawDyn->DrawModel(canvas, painter, dynamical); if(clusterer) drawClust->DrawModel(canvas, painter, clusterer); if(projector) drawProj->DrawModel(canvas, painter, projector); if(dynamical) { int cnt = 10000; // not too many or it will make unreadable files int steps = 8; VectorsFast(cnt, steps, painter); } if(maximizer) { Maximization(painter); } } if(canvas->bDisplayInfo) { // model info painter.setBackgroundMode(Qt::TransparentMode); if(classifier) drawClass->DrawInfo(canvas, painter, classifier); if(regressor) drawRegr->DrawInfo(canvas, painter, regressor); if(dynamical) drawDyn->DrawInfo(canvas, painter, dynamical); if(clusterer) drawClust->DrawInfo(canvas, painter, clusterer); if(projector) drawProj->DrawInfo(canvas, painter, projector); } painter.end(); }
void Figure2D::exportGraphics(QString fileName) { // Open file save dialog if no filename given if (fileName.isEmpty()) fileName = QFileDialog::getSaveFileName(this, tr("Export VIBes graphics"), QString(), tr("Portable Network Graphics (*.png);;" "Joint Photographic Experts Group (*.jpg *.jpeg);;" "Windows Bitmap (*.bmp);;" "Scalable Vector Graphics (*.svg)")); // Abort if no file selected if (fileName.isEmpty()) return; // Append .png if no extension was specified if (fileName.indexOf('.',1) < 0) // Search '.' from the second character (*nix hidden files start with a dot) fileName.append(".png"); // Save as raster if (fileName.endsWith(".jpg", Qt::CaseInsensitive) || fileName.endsWith(".jpeg", Qt::CaseInsensitive) || fileName.endsWith(".png", Qt::CaseInsensitive) || fileName.endsWith(".bmp", Qt::CaseInsensitive)) { QImage image(this->size()*2, QImage::Format_ARGB32); image.fill(QColor(255,255,255,0)); QPainter painter; painter.begin(&image); this->render(&painter); painter.end(); image.save(fileName); } // Save as vector (SVG) else if (fileName.endsWith(".svg", Qt::CaseInsensitive)) { QSvgGenerator generator; generator.setFileName(fileName); generator.setSize(this->size()); generator.setViewBox(QRect(QPoint(0,0),this->size())); generator.setTitle(tr("VIBes figure")); generator.setDescription(tr("Graphics generated with VIBes on %1.").arg(QDateTime::currentDateTime().toString())); QPainter painter; painter.begin(&generator); this->render(&painter); painter.end(); } }
void Spectrum1DWidget::saveAsImage() { QString file_name = QFileDialog::getSaveFileName(this, "Save File", "", "Raster images *.bmp *.png *.jpg *.gif (*.bmp *.png *.jpg *.gif);;Vector images *.svg (*.svg)"); bool x_visible = x_scrollbar_->isVisible(); bool y_visible = y_scrollbar_->isVisible(); x_scrollbar_->hide(); y_scrollbar_->hide(); if (file_name.contains(".svg", Qt::CaseInsensitive)) // svg vector format { QSvgGenerator generator; generator.setFileName(file_name); generator.setSize(QSize(this->width(), this->height())); generator.setViewBox(QRect(0, 0, this->width() - 1, this->height() - 1)); generator.setTitle(file_name); generator.setDescription("TOPPView generated SVG"); QPainter painter; painter.begin(&generator); painter.save(); painter.translate(QPoint(y_axis_->pos())); y_axis_->paint(&painter, new QPaintEvent(y_axis_->contentsRect())); painter.restore(); painter.save(); painter.translate(QPoint(canvas_->pos())); dynamic_cast<Spectrum1DCanvas*>(canvas_)->paint(&painter, new QPaintEvent(canvas_->contentsRect())); painter.restore(); painter.save(); painter.translate(QPoint(x_axis_->pos())); x_axis_->paint(&painter, new QPaintEvent(x_axis_->contentsRect())); painter.restore(); painter.end(); x_scrollbar_->setVisible(x_visible); y_scrollbar_->setVisible(y_visible); } else // raster graphics formats { QPixmap pixmap = QPixmap::grabWidget(this); x_scrollbar_->setVisible(x_visible); y_scrollbar_->setVisible(y_visible); pixmap.save(file_name); } }
void GraphEditor::image(QPrinter* printer, QString suffix) {if(!scene())return; QRect geo = geometry(); int size = staticData::sizeImage; resize(size+4,size+4); load(true); qApp->processEvents(); int rtt; QList<QGraphicsItem *> list = gwp->canvas->items(); for(QList<QGraphicsItem *>::Iterator it=list.begin();it!=list.end(); ++it) {rtt = (int)(*it)->type(); if(rtt == col_rtti || rtt == thick_rtti) (*it)->hide(); } int nx = (int)gwp->canvas->width(); int ny = (int)gwp->canvas->height(); if(suffix == "png" || suffix == "jpg") {QPixmap pixmap = QPixmap(nx,ny); QPainter pp(&pixmap); pp.setBrush(QBrush(Qt::white)); pp.setPen(QPen(Qt::white)); pp.drawRect(QRect(0,0,nx,ny)); pp.setPen(QPen(Qt::black)); render(&pp,QRectF(2,2,nx,ny),QRect(2,2,nx,ny)); pixmap.save(staticData::fileImage); } else if(suffix == "svg") {QSvgGenerator *svg = new QSvgGenerator(); svg->setFileName(staticData::fileImage); svg->setResolution(90); //ecran pts/pouce //svg->setResolution(physicalDpiX()); //ecran 101 svg->setSize(QSize(nx,ny)); QPainter pp(svg); pp.setBrush(QBrush(Qt::white)); pp.setPen(QPen(Qt::white)); pp.drawRect(QRect(0,0,nx,ny)); pp.setPen(QPen(Qt::black)); render(&pp,QRectF(2,2,nx,ny),QRect(2,2,nx,ny)); } else if(suffix == "pdf" || suffix == "ps") {QPainter pp(printer); render(&pp,QRectF(0,0,printer->width(),printer->height()),QRect(2,2,nx,ny)); } setGeometry(geo); load(true); }
void Matrix::exportSVG(const QString& fileName) { #if QT_VERSION >= 0x040300 if (d_view_type != ImageView) return; int width = numRows(); int height = numCols(); QSvgGenerator svg; svg.setFileName(fileName); svg.setSize(QSize(width, height)); QPainter p(&svg); p.drawImage (QRect(0, 0, width, height), d_matrix_model->renderImage()); p.end(); #endif }
void QgsSymbolV2::exportImage( QString path, QString format, QSize size ) { if ( format.toLower() == "svg" ) { QSvgGenerator generator; generator.setFileName( path ); generator.setSize( size ); generator.setViewBox( QRect( 0, 0, size.height(), size.height() ) ); QPainter painter( &generator ); drawPreviewIcon( &painter, size ); painter.end(); } else { QImage image = asImage( size ); image.save( path ); } }
void View::keyPressEvent(QKeyEvent *event) { if (event->key() == Qt::Key_Right) { // Zoom in. int steps = 1; if (event->modifiers() == Qt::ControlModifier) steps = 10; if (event->modifiers() == Qt::ShiftModifier) steps = 100; moveForward(steps); } else if (event->key() == Qt::Key_Left) { // Zoom out. int steps = 1; if (event->modifiers() == Qt::ControlModifier) steps = 10; if (event->modifiers() == Qt::ShiftModifier) steps = 100; moveBackward(steps); } else if (event->key() == Qt::Key_S) { if (event->modifiers() == Qt::ControlModifier) { /* * Render SVG. */ QString fileName = QFileDialog::getSaveFileName(this, "Save SVG", QString(), "SVG Files (*.svg)"); QSvgGenerator generator; generator.setFileName(fileName); generator.setSize(viewport()->rect().size()); generator.setViewBox(viewport()->rect()); // Temporarily give legs and edges non-cosmetic pens while rendering. foreach (QGraphicsLineItem *leg, m_legs) { QPen pen = leg->pen(); pen.setCosmetic(false); pen.setWidthF(1.0/transform().m11()); leg->setPen(pen); } foreach (QGraphicsLineItem *edge, m_edges) { QPen pen = edge->pen(); pen.setCosmetic(false); pen.setWidthF(1.0/transform().m11()); edge->setPen(pen); }