Передача параметра из qml в qt

не так давно изучаю qml, возник вопрос, как можно передать по клику на кнопку в qml слое, параметр в c++.

Сам коннект обмена данными между c++ и qml осуществляю так:

main.cpp

QQmlApplicationEngine engine;
Class class;
QQmlContext *context = engine.rootContext();
context->setContextProperty("class", &class);
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

class.h

signals:
void sendToQml(int k);
public slots:
void receiveFromQml();
private:
int k;

class.cpp

void Class::receiveFromQml()
{
    k++;
    emit sentToQml(k);
}

На слое qml принимаю параметр через Connections

main.qml

Connections{
    target: class
    onSendToQml: receiveIntToCpp.text = k;
}

Параметр выводится в текстовое поле, все ок, но не могу понять, как сделать обратную операцию, по клику на кнопку отправить переменную из qml в c++.

Может быть есть какие-нибудь примеры, или советы.

Спасибо за внимание!


Ответы (1 шт):

Автор решения: e.n.shirokov
context->setContextProperty("class", &class);

Вот этой строкой ты сделал объект class "видимым" в QML под именем "class".

Теперь, в QML-коде можно вызвать слот напрямую по имени объекта

class.receiveFromQml() 
→ Ссылка