Conectar funcionalidad C++ con la interfaz QML
Desde QML puede acceder a cada "propiedad" definida en su funcionalidad ó código C++. El código QML final de acceso quedará:
Backend.introductionTextOtra forma de nombrar funcionalidad en otro ejemplo distinto podría ser:
Users.list1. Añade el siguiente código a un nuevo archivo (KDevelop > File > New) y guardalo en tu aplicación MauiKit en myapp/src/code/backend.h:
#pragma once
#include <QObject>
#include <QDebug>
class Backend : public QObject
{
Q_OBJECT
Q_PROPERTY(QString introductionText READ introductionText WRITE setIntroductionText NOTIFY introductionTextChanged)
public:
explicit Backend(QObject *parent = nullptr);
public:
QString introductionText() const;
void setIntroductionText(const QString &introductionText);
Q_SIGNAL void introductionTextChanged();
private:
QString m_introductionText;
private slots:
void on_IntroductionTextChanged();
};2. Añade la implementación a un nuevo archivo en myapp/src/code/backend.cpp:
3. Añade en main.cpp:
#include "backend.h"
4. Añade en main.cpp, justo después de la línea "QQmlApplicationEngine engine;":
5. Añade en myapp/src/CMakeLists.txt:
6. Añada en el fichero qml en el que quiera acceder a la funcionalidad C++ el siguiente código.
Para establecer la conexión entre la funcionalidad C++ y la interfaz QML:
Para leer y escribir:
En el siguiente ejemplo se añade a main.qml:

Pasar múltiples datos en una sola propiedad desde código C++ a la interfaz QML: QVariantList.
En el siguiente ejemplo se crea la propiedad "users" conteniendo "name", "surname", "active" y "age". La propiedad "users" será leída y escrita desde QML.
1. Sustituya el paso 1 y añada a myapp/src/code/backend.h
2. Sustituya el paso 2 y añada a myapp/src/code/backend.cpp
En una programación más realista sería parecido a esto:
3. Sustituya el paso 6 y añada a main.qml:
Para leer desde C++ el objeto QVariantList "users" y acceder a la información de cada usuario puede usar el siguiente código donde desee. En este caso en la función de respuesta a usuario cambiado:
La salida de consola de KDevelop muestra (iniciar ejecución pulsando click sobre botón Debug):
Invocar funciones C++ desde QML.
La macro Q_INVOKABLE permite invocar una función C++ desde código de interfaz QML.
1. Añade en myapp/src/code/backend.h:
2. Añade en myapp/src/code/backend.cpp:
3. Añade en main.qml:
Last updated