Qt图形图像开发曲线图表模块QChart库基本用法、各个类之间的关系说明

如何编译安装QChart请查看下面文章

Qt图形图像开发之曲线图表库QtChart编译安装详细方法与使用实例

使用Qt曲线图表模块Chart库首先要注意3点:

(1)在.pro文件中添加:QT += charts

(2)用到QChart的文件中添加:QT_CHARTS_USE_NAMESPACE,或者:using namespace QtCharts;

在ui界面中拖入一个graphicsView控件,然后右击提升为QChartView类,写提升为的类:QtCharts::QChartView,头文件写:qchartview.h

(3)别忘了在用到QChartView的文件中添加#include <QChartView>

如果编译报错,请依次执行:清除->执行qmake->构建

QChart的两种显示方法:(本质上就是同一种方法)

(1)QChart必须显示在widget上,更确切地说,是必须把它显示在QGraphicView控件中,众所周知,QT的ui控件都可以作为独立窗口直接显示,所以这就是方法1。

(2)把QChart显示在ui界面的QGraphicView控件中。

PS:把QChart显示在QGraphicView控件中,程序略显繁琐,QT早就为我们封装好了一个ui控件类QtCharts::QChartView,它继承了QGraphicView。这就是上文提到的把QGraphicView提升成了QChartView。用QChartView来显示QChart还是很方便的。

用QGraphicView来显示QChart较为繁琐,下面来对比一下,分别用QGraphicView和QChartView来显示QChart,代码量的区别:

(1)用QGraphicView来显示,需要借助QGraphicsScene类。具体地说就是,QGraphicView在最底层,QGraphicsScene在中间,QChart在最外层。

QGraphicsScene scene;//场景(中间层)
QGraphicsView view(&scene);//视图(最底层)
view.setRenderHint(QPainter::Antialiasing);//设置视图抗锯齿
view.setSceneRect(0, 0, 630, 280);//设置视图大小

QLineSeries *lineseries = new QLineSeries();//图表的数据集
lineseries->append(0, 5);//append和<<功能差不多
*lineseries << QPointF(13, 5) << QPointF(17, 6) << QPointF(20, 2);

QChart *lineChart = new QChart();//图表(最顶层)
lineChart->addSeries(lineseries); // 将 数据集 添加至图表中

scene.addItem(lineChart);//把图标添加到场景中(一个场景中允许添加多个图表)
view.show();//视图显示

(2)用QChartView来显示QChart较为方便

QLineSeries *lineseries = new QLineSeries();//图表的数据集
lineseries->append(0, 5);//append和<<功能差不多
*lineseries << QPointF(13, 5) << QPointF(17, 6) << QPointF(20, 2);

QChart *lineChart = new QChart();//图表(最顶层)
lineChart->addSeries(lineseries); // 将 数据集 添加至图表中

QChartView *chartView = new QChartView(chart);//QChartView 可以一步到位直接显示QChart
chartView->setRenderHint(QPainter::Antialiasing);//继承来的抗锯齿方法
chartView->resize(400, 300);
chartView->show();//本示例代码,把该控件作为窗口直接显示出来。
//其实,也可以把QChartView的父控件设置为主UI,这样就能把QChartView显示在主窗体中了

最后再来捋一下各个类之间的层次关系。下图中,大括号“{”代表左边实体包含右边实体,下箭头↓↓↓↓代表继承关系

本文先简单介绍了Qt曲线图表模块QChart库基本用法、各个类之间的关系说明,详细介绍就查看下面的相关链接

(0)

相关推荐

  • Qt图形图像开发之曲线图表库QtChart编译安装详细方法与使用实例

    Qt曲线图表库QtChart简介 Qt的线性绘图控件有大名鼎鼎的Qwt,ChartDirector,小巧玲珑的QCustomPlot,当然还有自家的QtChart.长久以来QtChart在Qt家族里一直是收费的模块,只有商业版才可以使用,但Qt5.7之后将开放其权限,可参见:Qt 5.7 亮瞎眼的更新.下面将介绍如何安装QtChart并进行简单的绘图. Qt曲线图表库QtChart下载 这里用git下载QtChart,参考Qt Charts 5.7.0 安装教程 Git地址:https://gi

  • Qt图形图像开发之曲线图表模块QChart库读取/设置X轴的显示区间

    设置初始的显示的区间,常用的有两种方法 (1)自动 lineseries = new QLineSeries();//声明折线数据集 lineseries->append(4, 10); //填充数据集 *lineseries << QPointF(13, 5) << QPointF(17, 6); lineChart = new QChart();//创建图表 lineChart->addSeries(lineseries); // 将 数据集 添加至图表中 line

  • Qt图形图像开发曲线图表模块QChart库缩放/平移详细方法与实例

    1.使用QChartView来缩放 (1)用鼠标框选一个矩形,把图放大到这个矩形 QChartView::setRubberBand(QChartView::RectangleRubberBand);//XY方向同时放大到鼠标画出的矩形大小(也可以设置为只放大X轴或Y轴) (2)setRubberBand函数同时也能使鼠标右键,具备缩小图的功能. 2.使用Qchart来平移和缩放 QChart::scroll(-10, 5);//整体平移(-10, 5),两个参数分别为Δx和Δy QChart:

  • Qt图形图像开发之曲线图表模块QChart库坐标轴和数据不对应、密集的散点图无法显示问题解决方法

    QChart坐标轴和数据不对应问题描述: lineseries->append(4, 10); lineseries->append(5, 8); Chart->addSeries(lineseries); // 将 series 添加至图表中 axisX->setRange(0, 15);//设置X的显示范围 axisY->setRange(-20, 20); lineChart->setAxisX(axisX);//把轴添加到图表中 lineChart->se

  • Qt图形图像开发之曲线图模块QCustomplot库生成静态、动态曲线详细教程图解

    Qt曲线图模块QCustomPlot库介绍 QCustomPlot是一个小型的Qt画图标类,支持绘制静态曲线.动态曲线.多重坐标曲线,柱状图,蜡烛图等.只需要在项目中加入头文件qcustomplot.h和qcustomplot.cpp文件,然后使一个widget提升为QCustomPlot类,即可使用. QCustomPlot官网:   http://www.qcustomplot.com/ QCustomPlot下载地址:   http://www.qcustomplot.com/index.

  • Qt图形图像开发之高性能曲线图模块QCustomplot库详细使用方法与实例(支持动、静曲线图)

    Qt曲线图模块QCustomPlot库介绍 QCustomPlot是一个小型的Qt画图标类,支持绘制静态曲线.动态曲线.多重坐标曲线,柱状图,蜡烛图等 前段时间用QChart模块画图,一条曲线上面放8000条数据就会卡的不行必须要换个其他的控件,后来找到了曲线图模块QCustomplot库 这个库性能非常好,画曲线图折线图柱状图动态静态,放大缩小,都很好用,10w条数据量无压力秒画出来一点也不卡 下载地址 https://www.qcustomplot.com/index.php/downloa

  • Qt图形图像开发之曲线图表模块QChart库一个chart中显示两条曲线详细方法与实例

    首先要了解QChartView.QChart.QLineSeries.QValueAxis的实体之间的关系,例如一个QChartView中可以包含几个QValueAxis?这些可参考 Qt图形图像开发曲线图表模块QChart库基本用法.各个类之间的关系说明 每个chart可以包含多个QLineSeries数据系列,每个QLineSeries数据系列又包含了2个QValueAxis数值轴或QDateTimeAxis时间轴. 那么这个chart中的多个数据系列,一起显示在同一个chart中,会是什么

  • Qt图形图像开发曲线图表模块QChart库基本用法、各个类之间的关系说明

    如何编译安装QChart请查看下面文章 Qt图形图像开发之曲线图表库QtChart编译安装详细方法与使用实例 使用Qt曲线图表模块Chart库首先要注意3点: (1)在.pro文件中添加:QT += charts. (2)用到QChart的文件中添加:QT_CHARTS_USE_NAMESPACE,或者:using namespace QtCharts; 在ui界面中拖入一个graphicsView控件,然后右击提升为QChartView类,写提升为的类:QtCharts::QChartView

  • Qt图形图像开发之曲线图表库QChart编译安装详细方法与使用实例

    Qt曲线图表库Qt Chart简介 Qt的线性绘图控件有大名鼎鼎的Qwt,ChartDirector,小巧玲珑的QCustomPlot,当然还有自家的QtChart.长久以来QtChart在Qt家族里一直是收费的模块,只有商业版才可以使用,但Qt5.7之后将开放其权限,可参见:Qt 5.7 亮瞎眼的更新.下面将介绍如何安装QtChart并进行简单的绘图. Qt曲线图表库Qt Chart下载 这里用git下载QtChart,参考Qt Charts 5.7.0 安装教程 Git地址:https://

  • Qt图形图像开发之QT滚动区控件(滚动条)QScrollArea的详细方法用法图解与实例

    QT滚动区控件(滚动条控件)QScrollArea简介 滚动区域控件QScrollArea用于显示一个画面中的子部件的内容.如果部件超过画面的大小,视图可以提供滚动条,这样就可以看到部件的整个区域. QScrollArea属于控件容器类,可以直接在ui中拖出来. 对于QScrollArea,最难搞懂的就是:如何控制它,才能让它在我们想要出现滚动条的时候出现滚动条. 我们拖入一个QScrollArea,再向他里面拖入4个button,观察信息如下: 可以发现,4个button并不是直接位于QScr

随机推荐