我有这样的事情导致我的程序崩溃
void BackEnd::updateChart(QtCharts::QChartView *view)
{
QList<QObject*> children = view->children();
}
在QML方面:
backend.updateChart(chartView);
其中“后端”是QT对象“后端”的实例,而“ chartView”是QML类型“ ChartView”的实例
我尝试在BackEnd构造函数上运行以下命令,但这无济于事
qRegisterMetaType<QtCharts::QChartView*>();
最佳答案
ChartView
不是QChartView
,ChartView
是DeclarativeChart,它是处理QChartView相同数据的私有api的QQuickItem
,但不是QChartView
。因此解决方案是将QtCharts::QChartView
更改为QQuickItem
或QObject
。
void BackEnd::updateChart(QQuickItem /*or QObject*/ *view)
{
QList<QObject*> children = view->children();
}
如果使用
qDebug()
打印视图,则会得到:QtCharts::DeclarativeChart(0xfoo_address, parent=0x0, geometry=0,0 400x300)