Вызвать функцию QML из класса C ++? - PullRequest
0 голосов
/ 19 июня 2020

Я хочу передать переменные из моего класса C ++ функции в моем классе QML, чтобы функция могла их использовать.

Я пытаюсь использовать сигнал и соединение, но оно не работает.

Вот мой соответствующий код:

main

...
qmlRegisterType<Client>("Client", 1, 0, "Client");
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/map.qml")));
...

cpp заголовок

class Client : public QDialog
{
    Q_OBJECT

public:
    explicit Client(QWidget *parent = nullptr);
...

public slots:
    void callDoAddMarker(float latitude, float longitude);

signals:
    void doAddMarker(float latitude, float longitude);

cpp class

void Client::someFunction(UINT16 array[]) {

    ...

    callDoAddMarker(latit, longit);
}

void Client::callDoAddMarker(float latitude, float longitude) {
    emit doAddMarker(latitude, longitude);
}

а в QML

import Client 1.0

...

function addMarker(latitude, longitude) {
    ...
}

Client {
    id: client
}

Connections {
    target: client
    onDoAddMarker: {addMarker(latitude, longitude)}
}

Может кто подскажет, что я делаю не так? Приветствуется любая помощь!

РЕДАКТИРОВАТЬ: добавление в мой main, чтобы показать, как я регистрирую класс cpp в QML, не уверен, что это правильно.

...