You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 02:54:26