void MainWindow::prepareData()
{
//QLineSeries* series0 = (QLineSeries*)ui.chartView->chart()->series().at(0);
//QLineSeries* series1 = (QLineSeries*)ui.chartView->chart()->series().at(1);
QLineSeries* series0 = qobject_cast<QLineSeries*>(ui.chartView->chart()->series().at(0));
QLineSeries* series1 = qobject_cast<QLineSeries*>(ui.chartView->chart()->series().at(1));
series0->clear();
series1->clear();
srand(QTime::currentTime().second());
qreal t = 0, y1, y2, intv = 0.1;
qreal rd;
int cnt = 100;
for (int i = 0; i < cnt; i++)
{
rd = (rand() % 10) - 5;
y1 = qSin(t) + rd / 50;
series0->append(t, y1);
rd = (rand() % 10) - 5;
y2 = qSin(t) + rd / 50;
series1->append(t, y2);
t += intv;
}
}
一运行就报下面这个文件出错
qlish.h文件
const_reference at(qsizetype i) const noexcept
{
Q_ASSERT_X(size_t(i) < size_t(d->size), "QList::at", "index out of range");
return data()[i]; //i=0,并没有获取到序列
}
为什么啊chart->addSeries(series0);
chart->addSeries(series1);我已经添加序列了啊
继承QChartView,主要重新实现鼠标事件和键盘事件。