问题
我正在使用 Qt LineChart,这个 QLineChart 可以加载和删除数据而不会在 CPU 渲染上出现问题。但是,当使用 setUseOpenGL(true) 时,QChart removeSeries() 不会正确更新我的 QLineChart。删除的数据在 QChart 上仍然可见。奇怪的是,当鼠标悬停在 QChart 上时,QChart 会更新并删除数据。
预期结果
调用 removeSeries() 后更新 QChart。
观察结果
QChart 未更新。
我试过的
- 调用 ChartView repaint() -- 没有效果
- 发出自定义 QEvent 以模拟鼠标悬停在 QChart 上 - 无效
- 将包含 QChartView 的 Widget 设置为 FullViewportUpdate -- 无效
我完全没主意了。欢迎所有建议。相关代码:
QLineSeries *series3= data->getScanLineSeries();
series3->setUseOpenGL(true);
if(data->getLineSeriesOnChart() == false)
...
{
chart->addSeries(series3);
data->setLineSeriesOnChart(true);
std::cout << "Series added to chart.";
qDebug() << QString("Series added to chart");
}
else
{
chart->removeSeries(series3);
data->setLineSeriesOnChart(false);
qDebug() << QString("ERROR: this series was already on the chart, removing QLineSeries");
return chart;
}
...
(axes handling)
return chart;