Hi Dirk, you may need to add one or more calls to `QQmlApplicationEngine::addImportPath()` ( https://doc.qt.io/qt-6/qqmlengine.html#addImportPath): One to the file system location where you installed your QML module, another to where to find the `main.qml` file. (You may want to use Qt resources to pre-compile `main.qml` into the binary, and then set the path accordingly).
HTH, On Sat, Aug 31, 2024 at 5:10 PM Dirk Hohndel via Interest < interest@qt-project.org> wrote: > Yeah, I need one place where I can load my "main" QML file, and I need a > way to make my C++ classes visible from within those QML files. > So I'm not sure how I'd do that with only one "load"... > > In Qt5 I used the "load" to get the main.qml file and then RegisterType to > get my C++ classes visible inside the QML code. > In your example, how do you load your QML file? > > /D > > On Aug 31, 2024, at 14:03, ekke <e...@ekkes-corner.org> wrote: > > Hi Dirk, > in my apps ATM I'm only using one qt qml module, so I'm doing > engine.loadFromModule(...) > see https://t1p.de/ekkeCMakeQMLModule > > Have no experiences yet if you have to deal with more modules. Later will > modularize my apps, much other refactorings must be done before ;-) > > but you should not do multi engine.loadFrom... > > good night... > > ekke > > Am 31.08.24 um 22:53 schrieb Dirk Hohndel via Interest: > > Hi Ekke, > > Thanks so much for the quick response. > > This is a massive project (Subsurface-mobile) that we build with CMake. > > Thanks for the link to your site with an explanation... this feels like > I'm **ALMOST** there... > > I had already added QML_ELEMENT to the class header. > > In the existing code, we load the main.qml from the resource system with > > engine.load(QUrl(QStringLiteral("qrc:///qml/main.qml"))); > > I added a second line > > engine.loadFromModule("subsurface/mobile/main", "QMLProfile"); > > Rebuilt things and get: > > INFO: QQmlApplicationEngine failed to load component > INFO: qrc:/qml/main.qml:8:1: module "subsurface.mobile.main" is not > installed > INFO: QQmlApplicationEngine failed to load component > INFO: <Unknown File>: No module named "subsurface/mobile/main" found > > Do I need to do anything else to ensure that the type is visible and > subsequently the module is found? > > Thanks again for your help! > > /D > > On Aug 31, 2024, at 12:56, ekke <e...@ekkes-corner.org> > <e...@ekkes-corner.org> wrote: > > What is your build system ? QMake or CMake ? > > Instead of qmlRegisterType you should use QML_ELEMENT > see https://t1p.de/ekkeQML_ELEMENT > > ekke > > Am 31.08.24 um 21:23 schrieb Dirk Hohndel via Interest: > > > Hi there, > > I've been trying to figure out how to port a QML app from Qt5 to Qt6 and > have been unable to solve what seems like a fairly basic issue. > > In the Qt5 version, I was able to make a class available from C++ by > simply calling > > ... > qmlRegisterType<QMLProfile>("org.subsurfacedivelog.mobile", 1, 0, > "QMLProfile) > ... > > in the C++ code and then using > > import org.subsurfacedivelog.mobile > > in the QML file in order to then be able to use that type as > > QMLProfile { > ... > } > > in the QML code. > > When I try this code unmodified, it compiles fine, but at run time tells > me that it cannot find the org.subsurfacedivelog.mobile module when it > encounters that import org.subsurfacedivelog.mobile line. > > So I tried some searching and found several pages in the Qt6 documentation > that all seem to imply that this isn't how things should be done in Qt6 and > that instead I would need to go down the route of defining a separate QML > module with its own compile unit (is this true? why would you disable this > core feature???) > > And then trying to do that, I fail to get the module to compile with > missing include paths. > If it turns out that that's the only way to go, I'll happily give a lot > more details on this issue -- but I'd love to first get back to the > previous approach. > Is there still a way in Qt6 to register a Type with QML without having to > create separate modules? > > Thanks > > /D > > _______________________________________________ > Interest mailing > listInterest@qt-project.orghttps://lists.qt-project.org/listinfo/interest > > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > https://lists.qt-project.org/listinfo/interest > > > > _______________________________________________ > Interest mailing > listInterest@qt-project.orghttps://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 > -- ...ich hab' noch einen Koffer in Berlin...
_______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest