Передайте пользовательский объект через QWebChanel, используя Q_PROPERTY - PullRequest
0 голосов
/ 04 июля 2018

Можете ли вы получить доступ к пользовательским типам, используя Q_PROPERTY и QWebChannel в javascript?

У меня есть класс, доступный для моего javascript-приложения, использующего QWebChannel, но я не могу получить доступ к его свойствам пользовательских типов, QString, int и т. Д. Работают нормально.

Например:

class MyData {

public:
  MyData() = default;
  MyData(const QJsonObject &json): a(json["a"].toString()), b["b"].toInt()) {}

  QString a = "hello",
  int b = 4
}
Q_DECLARE_METATYPE(MyData);

class MyService: public QObject {
  Q_OBJECT
  Q_PROPERTY(MyData myData READ getMyData WRITE setMyData);
} 

JavaScript будет что-то вроде:

//read returns null :(
var myData = window.MyService.myData;
//write setter called, but with default values instead of these
window.MyService.myData = { a = "some string", b = 232 }

в javascript, читающем значение, возвращаемое нуль, и запись - только значения по умолчанию.

это возможно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...