Files
qt5-legatus-legacy/Lts/Viewer/SituationMap/Tests/exampleSvgRenderer/exampleMain.cpp
T
2026-08-13 18:33:10 +02:00

109 lines
2.3 KiB
C++
Executable File

/**
* @RDE_HEADER@
* Interface
* $Id$
* $HeadURL$
* $Author$
*/
#include <QtWidgets/QApplication>
#include <QMainWindow>
#include <QPainter>
#include <QImage>
#include <QSvgGenerator>
#include <QSvgRenderer>
void renderImpactSymbol(QPainter& painter)
{
// From SymbolDictionaryExtendedImpl::renderImpactSymbol
QColor color = Qt::red;
int size = 100;
bool filled = false;
QPen pen(color);
pen.setWidth(2);
painter.setPen(pen);
const int sizeHalf = size/2.0;
QPointF center(sizeHalf, sizeHalf);
// circle
if (filled)
painter.setBrush( color );
painter.drawEllipse(center, sizeHalf*0.5, sizeHalf*0.5);
// // lines
// QLine newLine(0, sizeHalf, size, sizeHalf);
// painter.drawLine(newLine);
// QTransform trans;
// trans.translate(sizeHalf, sizeHalf);
// trans.rotate(45);
// trans.translate(-sizeHalf, -sizeHalf);
// newLine = trans.map(newLine);
// painter.drawLine(newLine);
// newLine = trans.map(newLine);
// painter.drawLine(newLine);
// newLine = trans.map(newLine);
// painter.drawLine(newLine);
}
int main (int argc, char* argv[])
{
QApplication app ( argc, argv );
// under windows for ArcGIS 10.2.6 and higher
#ifdef Q_OS_WIN
QCoreApplication::setAttribute( Qt::AA_UseOpenGLES );
#endif
int fullSize = 100;
QImage image(fullSize, fullSize, QImage::Format_ARGB32);
image.fill(qRgba(0,0,0,0));
{
// Image:
QPainter painterI(&image);
renderImpactSymbol(painterI);
painterI.end();
image.save(QLatin1String("dummy.png"));
// SaveSvg:
QSvgGenerator generator;
generator.setFileName(QLatin1String("dummy.svg"));
generator.setSize(QSize(100, 100));
generator.setViewBox(QRect(0, 0, 100, 100));
generator.setTitle(QLatin1String("SVG Generator Example Drawing"));
generator.setDescription(QLatin1String("An SVG drawing created by the SVG Generator"));
QPainter painterSvg;
painterSvg.begin(&generator);
renderImpactSymbol(painterSvg);
painterSvg.end();
}
{
QSvgRenderer svgRenderer;
QImage image(fullSize, fullSize, QImage::Format_ARGB32);
image.fill(qRgba(0,0,0,0));
QPainter painter(&image);
svgRenderer.load(QLatin1String("manualDummy.svg"));
svgRenderer.render(&painter);
painter.end();
image.save(QLatin1String("manualDummy.png"));
}
return app.exec();
}