qtchart获取不到序列


QLineSeries* series0 = (QLineSeries*)ui.chartView->chart()->series().at(0);
    QLineSeries* series1 = (QLineSeries*)ui.chartView->chart()->series().at(1);
获取不到序列
chart->addSeries(series0); chart->addSeries(series1);我在另一个函数里添加了序列
  • 请看👉 :QtChart——简单的动态波形图
  • 除此之外, 这篇博客: QtCharts绘制动态心电图[2]——利用队列进行实时绘制中的 模拟数据到来以及存入队列 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在实际的工作中,一般是一定时间收到一个数据包,所以这里我们模拟500ms收到一个包

    //模拟TCP数据到来的定时器
    	ecgWaveReadTimer = new QTimer(this);
    	connect(ecgWaveReadTimer, SIGNAL(timeout()), this, SLOT(oneTimeOutWriteToFifoAction()));
    	ecgWaveReadTimer->start(500);//500ms执行一次
    

    然后是槽函数,将读出的数据加入队列中

    //模拟500ms收到一个数据包 以后这部分就可以是TCP或者是串口接收到一次数据就加入一次缓存队列
    void RealTimeEcg::oneTimeOutWriteToFifoAction() {
    	//需要从上一次队尾开始读取
    	for (int i = originListIndex; i < (125 + originListIndex); i++)
    	{
    		qint16 tempInt16 = originList.at(i).toInt();
    		m_EcgShortQueue.enqueue(tempInt16);
    	}
    	originListIndex += 125;
    	//如果剩下的数据不足以支撑下一次数据读取,就停止定时器
    	if ((originListIndex + 125) >= originListSize)
    	{
    		ecgWaveReadTimer->stop();
    	}
    }