Here is a bit of the code that we used in our desktop QML application to reload the application when the user pressed F7.
QQmlApplicationEngine engine; QmlReloader reloader(&engine); QObject::connect( &engine, &QQmlApplicationEngine::objectCreated, qApp, [](QObject* obj, const QUrl& objUrl) { if(obj == nullptr) { qDebug() << "Can't load " << objUrl << " exiting."; QCoreApplication::exit(-1); } }, Qt::QueuedConnection); qmlRegisterSingletonInstance<IPresentationManager>("NX.interfaces", 1, 0, "Presenter", &presenter); qmlRegisterSingletonInstance<NXClipboard>("NX.interfaces", 1, 0, "Clipboard", &clipboard); engine.addImportPath("qrc:/"); engine.addImportPath(DREAM3DNX::k_QmlNXResourceRoot); engine.load("qrc:/main.qml"); qDebug() << "QML2_IMPORT_PATH:" << engine.importPathList(); QObject::connect(&reloader, &QmlReloader::reload, qApp, [&presenter, &clipboard](QQmlApplicationEngine* engine) { qDebug() << "F7 Reloader Activated... "; NX::NXParameterManager* parameterManager = NX::NXParameterManager::Instance(); parameterManager->setQmlParameterPrefix( #ifdef Q_OS_WINDOWS "file:///" #else "file://" #endif + DREAM3DNX::k_QmlNXResourceRoot.toStdString()); qmlRegisterSingletonInstance<IPresentationManager>("NX.interfaces", 1, 0, "Presenter", &presenter); qmlRegisterSingletonInstance<NXClipboard>("NX.interfaces", 1, 0, "Clipboard", &clipboard); engine->addImportPath(DREAM3DNX::k_Qml3rdPartyResourceRoot); engine->addImportPath(DREAM3DNX::k_QmlNXResourceRoot); engine->load(QUrl::fromLocalFile(DREAM3DNX::k_QmlApplicationsResourceRoot + "/DREAM3D/main.qml")); }); Maybe that helps. Maybe it does not. -- Michael Jackson | Owner, President BlueQuartz Software [e] mike.jack...@bluequartz.net [w] www.bluequartz.net On 5/24/22, 8:31 PM, "Interest on behalf of Alexander Dyagilev" <interest-boun...@qt-project.org on behalf of alervd...@gmail.com> wrote: Hello, Try to call App.changeStyle via queued connection. I.e. your Button::onClicked handler must exit BEFORE you shut the engine down. On 5/24/2022 6:45 PM, randomslap--- via Interest wrote: > Hello Qt people! > > I would like to inquire your assistance regarding this: > Is there a way to change the style of a QML(QuickControls2) UI of an > application while it runs? Specifically the program should work with > QQmlApplicationEngine and an ApplicationWindow QML Item. > > I have tried making a simple program that could reload its quick > style upon clicking one of the buttons on it. The program appears at > first and seems to close and execute the function that tries to reload > the style but seems to fail on engine.load(). I have sent an image of > all the code and the code files too. > > I would specifically like to implement something like this on a > Desktop Environment and being able to load a new style on runtime > would allow for unlimited "theming" options. > > Thank you for maintaining the Qt Project. > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > https://lists.qt-project.org/listinfo/interest _______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest _______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest