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
128

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).




Initialisation du gestionnaire d'application


#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQuickStyle>
#include <QFontDatabase>
#include <QIcon>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
    ...
    return app.exec();
}

On démarre la création du programme principal (main).
On crée le gestionnaire d'application (app).
On entre dans la boucle de gestion des évènements à partir du gestionnaire (app). 


Gestion du thème de l'application


int main(int argc, char *argv[])
{
    ...
    qDebug() << "The current style is:" << QQuickStyle::name();
    QQuickStyle::setStyle("Basic");
    ...
}

On affiche le style courant.
On initialise le style (Basic).


Gestion de l'icône de l'application


int main(int argc, char *argv[])
{
    ... 
    app.setWindowIcon(QIcon(":/ReadyQML/res/img/logo.png"));
    ...
}

On initialise l'icône de l'application à partir d'un fichier ressource.


Gestion de la police personnalisée (Codec Pro)


int main(int argc, char *argv[])
{
    ... 
    QFontDatabase::addApplicationFont(":/ReadyQML/res/font/CodecPro-Regular.ttf");
    QFont font("Codec Pro");
    QGuiApplication::setFont(font);

    QStringList fontList = QFontDatabase::families();
    if (fontList.contains("Codec Pro"))
    {
        qDebug() << "Codec Pro font is loaded.";
    }
    else
    {
        qDebug() << "Codec Pro font is not loaded.";
    }
    ...
}

On ajoute la police personnalisée dans la base de données des polices à partir d'un fichier ressource.
On crée une police personnalisée (font) à partir du nom (Codec Pro).
On initialise la police du gestionnaire d'application.
On récupère la liste des polices à partir de la base de données des polices.
On vérifie que la liste des polices contient la police personnalisée (Codec Pro).
On affiche message de succès si oui.
On affiche un message d'échec si non.


Gestion du chargement du composant QML (Main.qml)


int main(int argc, char *argv[])
{
    ...
    QQmlApplicationEngine engine;
    const QUrl url("qrc:/ReadyQML/qml/Main.qml");
    QObject::connect(
        &engine,
        &QQmlApplicationEngine::objectCreationFailed,
        &app,
        []()
        { QCoreApplication::exit(-1); },
        Qt::QueuedConnection);
    engine.load(url);
    ...
}

On crée un chargeur de composant QML (engine).
On crée l'URL du composant QML principal à partir d'un fichier ressource (url).
On démarre une connexion signal-slot à partir du chargeur QML (engine) et du gestionnaire d'application (app). On connecte le signal émis lors d'une erreur de chargement de composant QML à une fonction anonyme lambda. On ferme l'application en cas d'erreur de chargement du composant QML. On indique d'ajouter la connexion signal-slot à une liste d'attente afin d'éviter les bugs liés à des connexions immédiates dans un environnement multithreading.
On démarre le chargement du composant QML.