当前位置:   article > 正文

QT的QChartView类的用法实例说明

qchartview

参考实例

 

Zoom Line Example

https://doc.qt.io/qt-5/qtcharts-zoomlinechart-example.html

 

QChartView类讲解

QChart类和QChartView类的关系,类似于MFC中的文档与视图的关系。QChart类主要是组织图表的内容(文档类),QChartView用于展示图表(视图类)。

每个QChartView对象都绑定一个QChart对象。可以在构造函数中传入QChart对象的指针,也可以通过setChart()函数设置。

与QChart相关的函数

  1. void setChart(QChart *chart)
  2. QChart *chart() const

 

与RubberBand相关的函数

QChartView的另一个功能是设置RubberBand类型。

  1. RubberBands rubberBand() const
  2. void setRubberBand(const RubberBands &rubberBand)

RubberBand类型有4种:

  1. enum RubberBand {
  2. NoRubberBand = 0x0,
  3. VerticalRubberBand = 0x1,
  4. HorizontalRubberBand = 0x2,
  5. RectangleRubberBand = 0x3
  6. };

含义如下:

 

实例讲解

在官方实例的基础上,增加以下代码。主要功能是,不同的按键设置不同的RubberBand类型

  1. void ChartView::keyPressEvent(QKeyEvent *event)
  2. {
  3. switch (event->key())
  4. {
  5. ....(其他代码)
  6. // 以下为新增
  7. case Qt::Key_0:
  8. setRubberBand(QChartView::NoRubberBand);
  9. break;
  10. case Qt::Key_1:
  11. setRubberBand(QChartView::VerticalRubberBand);
  12. break;
  13. case Qt::Key_2:
  14. setRubberBand(QChartView::HorizontalRubberBand);
  15. break;
  16. case Qt::Key_3:
  17. setRubberBand(QChartView::RectangleRubberBand);
  18. break;
  19. default:
  20. break;
  21. }
  22. }

默认效果

 

矩形橡皮圈效果

按数字3,将执行以下代码:

setRubberBand(QChartView::RectangleRubberBand);

可以在图表的绘图区拉出矩形橡皮圈:

放手后,橡皮圈部分将放大显示,填满两个绘图区:

水平橡皮圈效果

按数字2,将执行以下代码:

setRubberBand(QChartView::HorizontalRubberBand);

可以在图表的绘图区拉出水平橡皮圈:

松手后,将所选矩形水平放大:

 

竖直橡皮圈效果

按数字1,将执行以下代码:

setRubberBand(QChartView::VerticalRubberBand);

可以在图表的绘图区拉出竖直橡皮圈:

松手后,效果为:

 

无橡皮圈效果

执行 setRubberBand(QChartView::NoRubberBand);设置为无橡皮圈效果,则无法在绘图区拖出选定区域,也就不会进行缩放了。

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/781399
推荐阅读
相关标签
  

闽ICP备14008679号