c++ - Qt - 滚动图表的可见区域

标签 c++ qt charts scroll

我是 Qt 的初学者,目前正在学习掌握 Qt5 的书,但我被卡住了。有一段代码

// Global variables
const int CHART_X_RANGE_COUNT = 50;
const int CHART_X_RANGE_MAX = CHART_X_RANGE_COUNT - 1;

void MemoryWidget::updateSeries()
{
  double memoryUsed = SysInfo::instance().memoryUsed(); // retrieve the latest memory percentage used
  mSeries->append(mPointPositionX++, memoryUsed);
  if (mSeries->count() > CHART_X_RANGE_COUNT)
  {
    QChart *chart = chartView().chart();
    chart->scroll(chart->plotArea().width() / CHART_X_RANGE_MAX, 0);
    mSeries->remove(0);
  }
}

我只是不明白下面的一段代码
chart->scroll(chart->plotArea().width() / CHART_X_RANGE_MAX, 0);

如果我想滚动到 X 轴上的最新点而 Y 上没有任何内容,那么为什么我必须这样做:
chart->plotArea().width() / CHART_X_RANGE_MAX

并且不能这样做:
chart->scroll(1, 0);

最佳答案

根据文档 scroll按 dx 和 dy 指定的距离滚动图表的可见区域。

为什么chart->scroll(chart->plotArea().width() / CHART_X_RANGE_MAX, 0);
因为 mSeries->append(mPointPositionX++, memoryUsed);定期调用,一段时间后将填充 xaxis 的完整窗口,并且在每个完整窗口填充后绘图将滚动,如果您使用 chart->scroll(1, 0);每次updateSeries()叫你滚动窗口到下一个并且总是显示最后一个点,

通常,此图要按 CHART_X_RANGE_MAX 滚动.

关于c++ - Qt - 滚动图表的可见区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46343422/

相关文章:

c++ - 如何在 C++ 中通过 BOOST_FOREACH 使我的类可迭代?

python - 如何从 GUI 应用程序正确终止 QThread?

Android千点图

javascript - Highchart - 将更多系列添加到多个同步的 Highstock 图表之一

c++ - 如何配置 NAR Maven 项目?

c++ - 指向指针的指针有什么意义?

c++ - Qt firstVisibleBlock const is protected 错误

javascript - 带有外部 ajax 数据的图表 PHP

c++ - 将 if else 语句的最后一个值赋给变量

c++ - qmake项目编译sqlite出错