当C++SLOT函数试图与它从QML获得的输入交互时崩溃



我有这样的事情导致我的程序崩溃

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不是QChartViewChartView是DeclarativeChart,它是处理QChartView相同数据的私有api的QQuickItem,但它不是QChartView。因此,解决方案是将QtCharts::QChartView更改为QQuickItemQObject

void BackEnd::updateChart(QQuickItem /*or QObject*/ *view)
{
QList<QObject*> children = view->children();
}

如果你用qDebug()打印视图,你会得到:

QtCharts::DeclarativeChart(0xfoo_address, parent=0x0, geometry=0,0 400x300)

相关内容

  • 没有找到相关文章

最新更新