Logs
Consultez les logs.
OK
Liste des données
Consultez la liste des données.
OK
Loading...
Formulaire
Saisissez vos données.
Enregistrer
Annuler

Références QML

Vues
120

Vous souhaitez réaliser des applications graphiques hautes performances en C++ avec la bibliothèque graphique Qt fournissant le langage QML capable d'exploiter la puissance des processeurs graphiques GPU afin de bénéficier de l'accélération matérielle pour créer des interfaces graphiques fluides multiplateformes orientées bureau (Windows, Linux, Mac OS) ou mobile (Android, iOS).

image.png



Gestion du programme principal en C++ (main.cpp)


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");
    ...
}
...