使用Q_PROPERTY通过QWebChanel传递自定义对象

时间:2018-07-03 21:13:43

标签: c++ qt

您可以在JavaScript中使用Q_PROPERTY和QWebChannel访问自定义类型吗?

我已经使用QWebChannel向我的javascript应用程序公开了一个类,但是我似乎无法访问它的自定义类型属性,QString,int等也可以正常工作。

例如:

chart.ChartAreas["ChartArea1"].BackColor = Color.Black;
chart.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineColor = Color.LawnGreen;
chart.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineColor = Color.LawnGreen;

javascript类似于:

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中,读取值返回null,而写入只是默认值。

这可能吗?

0 个答案:

没有答案