IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Extending QML - Adding Types Example

Exporting C++ Classes.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

Extending QML - Adding Types Example

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:

 
Sélectionnez
import People

Person {
    name: "Bob Jones"
    shoeSize: 12
}

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.

 
Sélectionnez
class Person : public QObject
{
    Q_OBJECT
    Q_PROPERTY(QString name READ name WRITE setName)
    Q_PROPERTY(int shoeSize READ shoeSize WRITE setShoeSize)
    QML_ELEMENT
public:
    using QObject::QObject;

    QString name() const;
    void setName(const QString &);

    int shoeSize() const;
    void setShoeSize(int);

private:
    QString m_name;
    int m_shoeSize = 0;
};

Define the Person Class

 
Sélectionnez
QString Person::name() const
{
    return m_name;
}

void Person::setName(const QString &n)
{
    m_name = n;
}

int Person::shoeSize() const
{
    return m_shoeSize;
}

void Person::setShoeSize(int s)
{
    m_shoeSize = s;
}

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.

Example project

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+