Можете ли вы получить доступ к пользовательским типам, используя 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, читающем значение, возвращаемое нуль, и запись - только значения по умолчанию.
это возможно?