Time for action – making CarInfo instantiable from QML
First, we will update the QML document to create an instance of CarInfo
present in the CarInfo 1.0 module:
import QtQuick 2.0 import CarInfo 1.0 Image { source: "dashboard.png" CarInfo { id: carData visible: true // make the widget visible } // ... }
As for registering CarInfo
, it might be tempting to simply call qmlRegisterType
on CarInfo
and congratulate ourselves for a job well done:
int main(int argc, char **argv) { QGuiApplication app(argc, argv); QQuickView view; qmlRegisterType<CarInfo>("CarInfo", 1, 0, "CarInfo"); view.setSource(QUrl("qrc://main.qml")); view.show(); return app.exec(); }
In general this would work (yes, it is as simple as that). However, at the time of writing, trying to instantiate any widget in a QML document as the child of some QtQuick
item will lead to a crash (maybe at the time you are reading this text the issue will have...