C++ qml图表视图在发送到C++;

C++ qml图表视图在发送到C++;,c++,qt,qml,C++,Qt,Qml,我有一个包含多个数据系列的数据源(前期未知) 我想在代码一个QML CARTVIEWS//COD>中添加一个行代码< /COD>,所以我试图把C++的边“钩”到QML,像这样: // data source ... Q_PROPERTY(QtCharts::QChartView *chart READ chart WRITE setChart NOTIFY chartChanged) public slots: void setChart(QtCharts::QChartView *newCh

我有一个包含多个数据系列的数据源(前期未知)

我想在代码一个QML <代码> CARTVIEWS//COD>中添加一个<代码>行代码< /COD>,所以我试图把C++的边“钩”到QML,像这样:

// data source
...
Q_PROPERTY(QtCharts::QChartView *chart READ chart WRITE setChart NOTIFY chartChanged)
public slots:
void setChart(QtCharts::QChartView *newChart) {
  qDebug() << "received new chart to draw on:" << newChart;
}
现在,
setChart
被称为allright,但类型似乎不匹配:传入的图表指针为null:

> received new chart to draw on:  QWidget(0x0)
将输入类型放宽为plain
QObject*
向我显示了传入对象的实际类型是


<>我应该如何发送<代码>图表>代码>项目到我的C++模型?(或者我应该使用完全不同的方法)

如果你需要更新图表轴和系列,你应该把它们发送到C++并更新它们。我写了一个例子,你可以看看我认为它是你想要的。 在这个例子中,我把C++语音示例从QWIDGET图表转换为QML图表,但是C++中的系列信息正在更新:
如果你需要更新图表轴和系列,你应该把它们发送到C++中,然后更新它们。我写了一个例子,你可以看看,我想它是你想要的。 在这个例子中,我把C++语音示例从QWIDGET图表转换为QML图表,但是C++中的系列信息正在更新:

可能和您期望的QWidget之间存在类型问题,而QML可能会给您一个QTQuickItem。。。那么我应该通过
QtQuickItem
吗?我想您需要将void setChart(QtCharts::QChartView*newChart)更改为void setChart(QQuickItem*newChart),然后尝试类似的操作。我认为如果C++不知道QML,C++通过EvTeNI发送数据到QML,那么你应该改变应用程序逻辑,而不是函数。你试图这样做的方式是错误的。通过模型或某些代理对象从C++到QML(而不是从后面)提供图表数据。可能QML对象没有相应的C++类,或者它们是私有的。也许存在一种类型的问题,而您期望QWIDGET和QML可能给QQQuiTimeMe…那么我应该通过
QtQuickItem
吗?我想您需要将void setChart(QtCharts::QChartView*newChart)更改为void setChart(QQuickItem*newChart),然后尝试类似的操作。我认为如果C++不知道QML,C++通过EvTeNI发送数据到QML,那么你应该改变应用程序逻辑,而不是函数。你试图这样做的方式是错误的。通过模型或某些代理对象从C++到QML(而不是从后面)提供图表数据。可能QML对象没有相应的C++类,或者它们是私有的。
> received new chart to draw on:  QWidget(0x0)