Я хочу передать переменные из моего класса 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, не уверен, что это правильно.