1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
#include "vue.h"
#include "iostream"
Vue::Vue()
{
view = new QGraphicsView(this);
scene = new QGraphicsScene(this);
plane = new QSvgWidget(":/res/img/avion.svg", view);
resize(WINDOW_WEIGHT, WINDOW_HIGHT);
scene->setSceneRect(0, 0, WINDOW_WEIGHT, WINDOW_HIGHT);
drawPlane();
drawSky();
view->setScene(scene);
view->show();
view->installEventFilter(this);
setCentralWidget(view);
}
void Vue::drawSky()
{
QPainterPath PathSky;
QRect rectSky(0, 0, WINDOW_WEIGHT, WINDOW_HIGHT/2);
QPen penSky(QColor(116, 208, 241), 1, Qt::SolidLine);
QBrush brushSky(QColor(116, 208, 241));
PathSky.addRect(rectSky);
scene->addPath(PathSky, penSky, brushSky);
QPainterPath PathGround;
QRect rectGround(0, WINDOW_HIGHT/2, WINDOW_WEIGHT, WINDOW_HIGHT);
QPen penGround(QColor(181, 121, 33), 1, Qt::SolidLine);
QBrush brushGround(QColor(181, 121, 33));
PathGround.addRect(rectGround);
scene->addPath(PathGround, penGround, brushGround);
}
void Vue::drawPlane()
{
plane->move(WINDOW_WEIGHT/3, WINDOW_HIGHT/3);
plane->resize(this->size().width()/3, this->size().height()/3);
plane->renderer();
}
void Vue::resizeEvent(QResizeEvent *event)
{
view->fitInView(0, 0, scene->width(), scene->height());
QWidget::resizeEvent(event);
plane->renderer();
}
void Vue::showEvent(QShowEvent *event)
{
view->fitInView(0, 0, scene->width(), scene->height());
QWidget::showEvent(event);
} |
Partager