23 : QMainWindow(parent), ui(new Ui::
MainWindow), m_t(telemetry)
28 this->setFixedSize(1280, 800);
31 ui->bottomNavFrame->setFixedHeight(40);
32 ui->bottomNavLayout->setContentsMargins(10, 2, 10, 2);
33 ui->bottomNavLayout->setSpacing(15);
36 ui->verticalLayoutRoot->setStretch(0, 1);
37 ui->verticalLayoutRoot->setStretch(1, 0);
52 QWidget* mainContainer =
new QWidget(
this);
53 m_mainLayout =
new QHBoxLayout(mainContainer);
54 m_mainLayout->setContentsMargins(0, 0, 0, 0);
55 m_mainLayout->setSpacing(10);
57 m_mainLayout->addWidget(m_nav);
58 m_mainLayout->addWidget(m_cam);
59 m_mainLayout->addWidget(m_media);
60 m_mainLayout->addWidget(m_settings);
61 m_mainLayout->addWidget(m_ha);
64 int stackIndex = ui->verticalLayoutRoot->indexOf(ui->stackedPages);
65 ui->verticalLayoutRoot->insertWidget(stackIndex, mainContainer);
66 ui->stackedPages->hide();
69 connect(ui->btnNav, &QPushButton::pressed,
this, &MainWindow::goNav);
70 connect(ui->btnCam, &QPushButton::pressed,
this, &MainWindow::goCam);
71 connect(ui->btnSettings, &QPushButton::pressed,
this, &MainWindow::goSettings);
72 connect(ui->btnHA, &QPushButton::pressed,
this, &MainWindow::goHomeAssistant);
73 connect(ui->btnMedia, &QPushButton::pressed,
this, &MainWindow::goMedia);
76 m_btnSplit =
new QPushButton(
this);
77 m_btnSplit->setFixedSize(45, 45);
78 m_btnSplit->setCursor(Qt::PointingHandCursor);
80 ui->bottomNavLayout->insertWidget(0, m_btnSplit);
81 connect(m_btnSplit, &QPushButton::pressed,
this, &MainWindow::toggleSplitAndHome);
Rôle architectural : Page UI dédiée à l'affichage du flux caméra embarqué (ex: vue recul ou Bird-eye)...
Contrôleur de la vue caméra. Cette classe écoute sur un port UDP spécifique (4444) pour recevoir des ...
void startStream()
Démarre l'écoute du flux vidéo entrant. Ouvre le port UDP 4444 et se met en attente de datagrammes....
void stopStream()
Arrête l'écoute du flux vidéo entrant. Ferme le port UDP et efface la dernière image affichée....
Fenêtre principale agissant comme conteneur parent de toutes les vues de l'application....
MainWindow(TelemetryData *telemetry, QWidget *parent=nullptr)
Constructeur de la fenêtre principale.
~MainWindow()
Destructeur. Libère l'interface générée par Qt Designer.
Contrôleur de la page de navigation GPS. Héberge la carte (codée en QML) au sein de l'interface C++....
void bindTelemetry(TelemetryData *t)
Connecte le bus de télémétrie à la carte.
Interface graphique de gestion des paramètres et des connexions sans fil. Permet de rendre le véhicul...
Rôle architectural : Orchestrateur principal des pages du tableau de bord.
Rôle architectural : Façade Widget de la navigation cartographique.
Rôle architectural : Page de configuration système et Bluetooth utilisateur.