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.