QtCharts中QVector下标越界断言问题排查求助
QtCharts QVector下标越界断言问题排查
- 在QML中通过
var series = chartView.createSeries(ChartView.SeriesTypeLine, channel , axisX, axisY);创建折线系列,随后通过信号槽将该series对象传递至C++层,转换为QXYSeries*类型:QXYSeries* xySeries = static_cast<QXYSeries*>(series); - 使用
QVector<QPointF> points存储数据点,通过xySeries->replace(points)方法填充系列数据,自身代码从未直接用[]运算符访问该QVector - 程序运行一段时间后触发[]运算符下标越界断言,Qt Creator调试器显示触发错误的索引为45000,但该索引在数组中存在对应值
- 无法使用Visual Studio调试,Qt Creator堆栈跟踪仅追溯至main函数,未明确指向QML文件;数据来自TCP服务器,无法提供可复现代码
附main.cpp代码:
{ QApplication app(argc, argv); qmlRegisterType<GuiControl>("com.GuiControl", 1, 0, "GuiControl"); QQmlApplicationEngine engine; const QUrl url(QStringLiteral("qrc:/Resources/pages/main.qml")); QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, &app, [url](QObject *obj, const QUrl &objUrl) { if (!obj && url == objUrl) QCoreApplication::exit(-1); }, Qt::QueuedConnection); engine.load(url); return app.exec(); }
内容的提问来源于stack exchange,提问作者Crystal
相关产品推荐
相关产品推荐

