Qt World Summit: Submit your Presentation

QT - C++ with QML - Integrate an QML app with an C++ app

  • Is there any way how can I integrate a QML application within one with C++?


    I have an application made with C++ and ui files which should be the main application, and also I have another one where has just some screens and views made in QML.


    Is there any way in witch I can get the pages writen in QML and access them within the C++ application? The reasone I'm asking this is because I've saw that that the actually main it's totally different.

    C++ main:

    QApplication a(argc, argv);
    MainWindow w(&a);
    return a.exec();

    QML main:

    QGuiApplication app(argc, argv);
    qmlRegisterType<MovieListModel>("MovieListModel", 1, 0, "MovieListModel");
    qmlRegisterType<MovieModel>("MovieModel", 1, 0, "MovieModel");
    QQmlApplicationEngine engine;
    const QUrl url(QStringLiteral("qrc:/main.qml"));
    QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, &app, [url](QObject *obj, const QUrl &objUrl) {
    if (!obj && url == objUrl)
    }, Qt::QueuedConnection);
    return app.exec();


    How can I combine those 2 applications, or it's at even possible to combine them in a way that if in my application I will click on a button to go on a page from an UI file (or generated directly from C++ code) and if I will click on another button to go on an QML page?

    If any of you knows how can I do this please let me know, because everything which I could find on google it's how to have an QML file as ui and to use some C++ as backend for that specific UI. But nothing regarding how to combine both in terms of UI.

  • You can have a normal widget-based application (with widgets and ui-Files and all that), and show QML files inside a QQuickWidget

Log in to reply