Time for action – grouping engine properties
QML has a concept called grouped properties. These are properties of an object that contain a group of "sub-properties." You already know a number of them–the border property of the Rectangle element or the anchors property of the Item element, for example. Let's see how to define such properties for our exposed object.
Create a new QObject-derived class and call it CarInfoEngine. Move the property definitions of rpm and gear to that new class.Add the following property declaration to CarInfo:
Q_PROPERTY(Object* engine READ engine NOTIFY engineChanged)
Implement the getter and the private field:
QObject* engine() const { return m_engine; }
private:
CarInfoEngine *m_engine;We are not going to use the signal right now; however, we had to declare it otherwise QML would complain we were binding expressions that depend on properties that are non-notifiable:
signals:
void engineChanged();Initialize m_engine in the...