Bonjour tout le monde!

J'apprends actuellement à "dessiner" avec Qt et, malgré mon expérience avec le framework, je me heurte à un certain nombre de problèmes.

Mon objectif est de réaliser un horizon virtuel comme on peut en voir dans les avions:
Nom : 1024px-Artificial_horizon.svg.png
Affichages : 573
Taille : 168,6 Ko

Bien sûr, le miens sera beaucoup plus joli!

Je suis finalement parvenu à afficher l'horizon et le ciel tout en gérant le redimensionnement de la fenêtre (ce qui n'a pas été simple), mais lorsque je souhaite ajouter un .svg représentant mon avion, celui-ci ne s'adapte pas au redimensionnement de la fenêtre. Voici pour le moment le résultat que j'obtiens:
Nom : capture1.jpg
Affichages : 468
Taille : 86,4 Ko
Ici, j'ai fais la capture après avoir redimensionné la fenêtre. Au départ, l'avion est bien centré.
Le code que j'ai utilisé pour cela est le suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
}
Ma question est donc double:
1 - Pourriez-vous me confirmer que la façon dont je m'y prend pour "dessiner" est le bonne?
2 - Comment dois-je m'y prendre pour que mon fichier .svg suive les transformations de la fenêtre?

Merci d'avance!