#include "MainWindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
QMenu *fileMenu = menuBar()->addMenu(QObject::tr("&File"));
fileMenu->addAction(QObject::tr("Save As Svg"), this, &MainWindow::actionSaveAsSVG);
}
MainWindow::~MainWindow()
{
}
void MainWindow::paintEvent(QPaintEvent *event)
{
paintAll();
}
void MainWindow::actionSaveAsSVG()
{
QString filePath = QFileDialog::getSaveFileName(this, "Save SVG",
"", "SVG files (*.svg)");
if (filePath == "")
return;
QSvgGenerator generator;
generator.setFileName(filePath);
generator.setSize(QSize(this->width(), this->height()));
generator.setViewBox(QRect(, this->width(), this->height()));
generator.setTitle("SVG Example");
generator.setDescription("This SVG file is generated by Qt.");
paintAll(&generator);
}
void MainWindow::paintAll(QSvgGenerator *generator)
{
QPainter painter;
if (generator)
painter.begin(generator);
else
painter.begin(this);
// Draw Text
, QFont::Bold));
painter.drawText(QPoint(), "Hello Qt");
// Draw Line
));
// Draw Rectangle
painter.setBrush(Qt::BDiagPattern);
painter.drawRect(QRect());
// Draw Ellipse
QPen ellipsePen;
ellipsePen.setColor(Qt::red);
ellipsePen.setStyle(Qt::DashDotLine);
painter.setPen(ellipsePen);
painter.drawEllipse(QPoint();
// Draw Rectangle
QPainterPath rectPath;
rectPath.addRect(QRect());
painter.setPen(QPen(Qt::red, , Qt::DashDotLine, Qt::FlatCap,
Qt::MiterJoin));
painter.setBrush(Qt::yellow);
painter.drawPath(rectPath);
// Draw Ellipse
QPainterPath ellipsePath;
ellipsePath.addEllipse(QPoint();
painter.setPen(QPen(QColor(, Qt::SolidLine,
Qt::FlatCap, Qt::MiterJoin));
painter.setBrush(QColor());
painter.drawPath(ellipsePath);
painter.end();
}