On inclut les fichiers d'entête Qt.
...
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QIcon>
...
On inclut les fichiers d'entête du projet.
...
#include "History.h"
#include "Standard.h"
#include "Converter.h"
#include "ConverterHandler.h"
...
On crée le programme principal.
...
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
...
return app.exec();
}
...
On initialise les paramètres de l'application.
...
int main(int argc, char *argv[])
{
...
QGuiApplication::setApplicationName("rdv.calculator");
QGuiApplication::setApplicationDisplayName("rdvCalculator");
QGuiApplication::setApplicationVersion("1.0.0");
QGuiApplication::setWindowIcon(QIcon(":/img/logo.png"));
...
}
...
On charge les composants C++ dans le contexte QML.
...
int main(int argc, char *argv[])
{
...
qmlRegisterType<History>("rdv.History", 1, 0, "History");
qmlRegisterType<Standard>("rdv.Calculator", 1, 0, "Calculator");
qmlRegisterType<Converter>("rdv.Converter", 1, 0, "Converter");
std::unique_ptr<ConverterHandler> cnvtHandler(std::make_unique<ConverterHandler>());
qmlRegisterSingletonInstance("rdv.ConverterHandler", 1, 0, "ConverterHandler", cnvtHandler.get());
...
}
...
On charge le composant QML principal.
...
int main(int argc, char *argv[])
{
...
QQmlApplicationEngine engine;
QObject::connect(
&engine,
&QQmlApplicationEngine::objectCreationFailed,
&app,
[]() { QCoreApplication::exit(-1); },
Qt::QueuedConnection);
engine.load("qrc:/rdv/calculator/src/qml/MainWindow.qml");
...
}
...