Extending QML - Adding Types Example#
Exporting C++ Classes.
The Adding Types Example shows how to add a new object type, Person
, to QML. The Person
type can be used from QML like this:
<Code snippet "referenceexamples/adding/example.qml:0" not found>
Declare the Person Class#
All QML types map to C++ types. Here we declare a basic C++ Person class with the two properties we want accessible on the QML type - name and shoeSize. Although in this example we use the same name for the C++ class as the QML type, the C++ class can be named differently, or appear in a namespace.
class Person(QObject): Q_OBJECT Q_PROPERTY(QString name READ name WRITE setName) Q_PROPERTY(int shoeSize READ shoeSize WRITE setShoeSize) QML_ELEMENT # public QObject.QObject = using() name = QString() def setName(): shoeSize = int() def setShoeSize(int): # private m_name = QString() m_shoeSize = 0
Define the Person Class#
<Code snippet "referenceexamples/adding/person.cpp:0" not found>
The Person class implementation is quite basic. The property accessors simply return members of the object instance.
Running the Example#
The main.cpp file in the example includes a simple shell application that loads and runs the QML snippet shown at the beginning of this page.