我有这样的事情导致我的程序崩溃
void BackEnd::updateChart(QtCharts::QChartView *view)
{
QList<QObject*> children = view->children();
}
在QML方面:
backend.updateChart(chartView);
其中"backend"是QT对象"backend"的实例,"chartView"是QML类型"chartView"的实例
我试着在我的后端构造函数上运行以下内容,但这对没有帮助
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)