Extending QML - Extension Objects Example▲
This example builds on:
Shows how to use qmlRegisterExtendedType() to provide an extension object to a QLineEdit without modifying or subclassing it.
Firstly, the LineEditExtension class is registered with the QML system as an extension of QLineEdit:
Sélectionnez
qmlRegisterExtendedType&
lt;QLineEdit, LineEditExtension&
gt;("People"
, 1
,0
, "QLineEdit"
);
The QML engine then instantiates a QLineEdit:
Sélectionnez
QQmlEngine engine;
QQmlComponent component(&
amp;engine, QUrl("qrc:example.qml"
));
QLineEdit *
edit =
qobject_cast&
lt;QLineEdit *&
gt;(component.create());
In QML, a property is set on the line edit that only exists in the LineEditExtension class:
Sélectionnez
QLineEdit {
leftMargin
:
20
}
The extension type performs calls on the QLineEdit that otherwise will not be accessible to the QML engine.