QtChart-Qt官方绘图库安装与使用

#简介

Qt的线性绘图控件有大名鼎鼎的QwtChartDirector,小巧玲珑的QCustomPlot,当然还有自家的QtChart。长久以来QtChart在Qt家族里一直是收费的模块,只有商业版才可以使用,但Qt5.7之后将开放其权限,可参见:Qt 5.7 亮瞎眼的更新。下面将介绍如何安装QtChart并进行简单的绘图。

#下载 这里用git下载QtChart,参考Qt Charts 5.7.0 安装教程 如果大家还用Qt5.4以下版本请升级完再看,Qt5.4以下是不支持滴 Git地址:https://github.com/qtproject/qtcharts.git

git clone https://github.com/qtproject/qtcharts.git

这里写图片描述

下载完目录是这样的:

这里写图片描述 开始编译前需要下载Perl:activePerl

直接下一步点到头安装。 安装完成后需要重启一下电脑或者手动激活一下环境变量。

#编译QtChart

此时用Qt Creator加载qtcharts.pro

加载后Qt Creator界面

一杯茶的时间后:

编译成功后界面

此时在生成目录下生成:

生成文件

#安装

编译结束后就可以进行安装了 选择Qt Creator项目栏 - 运行标签 - 添加部署构建

这里写图片描述

这里需要添加两个部署,一个是QtChart的安装,一个是QtChart文档的编译。 如图所示配置完后,点击运行

这里写图片描述

这时会有很多复制的信息,它会把编译好的dll和头文件复制到Qt的安装目录下

这里写图片描述

这里写图片描述

打开Qt目录下的lib文件夹和include文件夹可以看到被复制过来的QtChart信息。 这时,再看QtChart的生成目录,比第一次编译时多了一个doc文件夹 你只要把这个doc文件夹里的qtcharts文件夹和qtcharts.qch文件复制到Qt安装目录下的Docs文件夹内对应版本文件夹下即可

这里写图片描述

这时打开Qt Assisant,搜QtChart,即可看到说明文档!

这里写图片描述

这时你的QtChart大部分已经配置完成。 还有example的安装,可参看文献[3]

#测试QtChart

下面演示如何用Qt Creator的界面设计师创建一个QtChart,其他方法可见参考文献。 首先新建一个Widget项目 使用一个Widget作为Chart的载体,在界面上放置一个Widget

这里写图片描述 右键点击这个widget,把这个Widget提升。

这里写图片描述 把这个Widget提升为QChartView

QtChart有两类绘图窗口容器,分别为QChart(QPolarChart)和QChartView,其区别官方文档说明为:

QChart is a QGraphicsWidget that you can show in a QGraphicsScene. It manages the graphical representation of different types of series and other chart related objects like legend and axes. If you simply want to show a chart in a layout, you can use the convenience class QChartView instead of QChart.

QChartView is a standalone widget that can display charts. It does not require separate QGraphicsScene to work. If you want to display a chart in your existing QGraphicsScene, you need to use the QChart (or QPolarChart) class instead.

因为这里是单独作为一个窗体放置,因此用QChartView

这里写图片描述

提升的类名为QChartView 头文件也为QChartView ,Qt每个类都有个无后缀的同类名文件,方便include 尝试编译一下程序会出现一个错误:

这里写图片描述

官方文档说明,使用QtChart还需要对pro文件进行设置:

To create a simple application, start by creating a new Qt Gui Application project in Qt Creator and add this line to the .pro file of the project:

QT += charts

In the main.cpp file, include the module headers and declare namespace usage:

#include <QtCharts>
using namespace QtCharts;

其中,可以使用QT_CHARTS_USE_NAMESPACE替代using namespace QtCharts;

这里写图片描述

添加完所需要的内容,编译还是发生错误,错误定位到ui_widget里

这里写图片描述

前面说了,用到QtChart的地方需要包含#include <QtCharts>以及命名空间using namespace QtCharts;(或者QT_CHARTS_USE_NAMESPACE替代using namespace QtCharts;) 但是ui_widget文件是自动生成的,不能再此文件里进行修改,此文件是包含在widget.h的一个叫Ui的命名空间中,因此,可以把

#include <QtCharts>
QT_CHARTS_USE_NAMESPACE

放置在widget.h上:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

此时在编译即可:

这里写图片描述 在构造函数里添加:

QLineSeries* line1 = new QLineSeries();
for(double x=0;x<10;x+=0.1)
{
    line1->append(x,sin(x));
}
QChart* c = new QChart();
c->addSeries(line1);
ui->chart->setChart(c);

效果如下:

这里写图片描述

#总结 在使用界面设计师用QtChart时,需要在对应的界面头文件上添加:

#include <QtCharts>
QT_CHARTS_USE_NAMESPACE

否则会发生编译错误!

完!

#参考文献

[1]Qt Charts 5.7.0 安装教程http://www.jianshu.com/p/8d9a817aa6b9

[2]Qt Chart 5.7.0 傻瓜安装教程http://www.cnblogs.com/findumars/p/5152294.html

[3]QtCharts编译(编译环境MSVC12)和VS2013配置QtCharts http://blog.csdn.net/wokaowokaowokao12345/article/details/50933447

转载于:https://my.oschina.net/2nmjeSMen3/blog/781656

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: QtChart是一个用于制图表的Qt模块,可以在Qt应用程序中创建各种类型的图表。对于十万个点的图,QtChart提供了一些优化选项来提高图的性能。 首先,可以使用抽样技术来减少要显示的点的数量。根据需要的精度和性能要求,可以通过计算取样点或者按照一定的规则选取要显示的点。这样一来,不需要制所有的点,从而减少了图的时间和资源消耗。 其次,可以使用背景网格来提高图的可读性。通过增加背景网格的密度,可以在较少的点数情况下观察到更多的数据变化趋势,从而提高图表的可视化效果。 此外,还可以使用数据聚合的方法来显示大量的数据点。例如,可以将数据分组,计算每个组的平均值、最大值或最小值,并将这些汇总数据用于制图表。这样一来,只需要制较少的汇总数据点,就可以展示出整体的数据趋势。 最后,考虑到用户交互的需求,可以使用鼠标缩放和滚动来实现对图表的放大和缩小操作。这样,即使在制大量数据点的情况下,用户仍然可以以不同的粒度查看数据,并能够快速找到所需的信息。 通过以上的优化方法,QtChart可以更高效地制出包含十万个点的图表,并保持良好的性能和可读性。当然,制大量数据点时仍然需要考虑硬件性能和资源消耗,但是使用合适的优化策略可以提高图的效率和用户体验。 ### 回答2: Qt Chart是一个数据可视化的类库,可以用于制各种类型的图表。对于十万个点的图,需要考虑到图的效率和性能。 首先,为了避免界面卡顿,可以使用线程来进行图操作,将图任务放在后台线程中进行。这样可以保持界面的流畅性,不会因为图操作而卡住界面。 其次,对于十万个点的图,可以使用折线图或者散点图来展示数据。可以通过设置坐标轴的范围,来限制制的区域,只制可见区域内的点。这样可以提高图的效率。 另外,可以使用动态图的方式来展示数据。即在滚动窗口中,随着数据的不断输入,不断更新图。这样可以避免一次性制十万个点,减少图的时间。 此外,还可以对数据进行降采样处理。即将原始数据进行应答,只选择一部分数据进行制。这样可以减少图的数据量,提高图的效率。 最后,可以使用硬件加速的方式来加快图的速度。一些现代的显卡和GPU对图形处理有专门的支持,可以利用其进行图加速。可以使用OpenGL或者DirectX等图形库来进行图操作。 综上所述,通过以上的优化方法,可以在Qt Chart中制十万个点,并保持较好的图效率和性能。 ### 回答3: QtChart是一个Qt的模块,它提供了一种简单便捷的方式来制各种类型的图形。对于制十万个点的图形,QtChart也可以应对。 首先,为了制十万个点的图形,我们可以使用QLineSeries类。这个类提供了一个用于存储数据点的容器,并且可以将这些数据点连接起来形成一条折线。我们可以通过调用QLineSeries的append函数,依次将十万个点添加到折线图中。 其次,为了使得数据点能够在图形中展示出来,我们需要为每个数据点创建一个QPointF对象。这个对象的x坐标可以使用数据点的索引来表示,而y坐标可以设置为数据点的实际数值。 然后,我们需要创建一个QChart对象,并将刚刚创建的QLineSeries对象添加到图表中。然后,我们可以设置图表的标题、轴标签等属性,使得图表更加直观和易于理解。 最后,我们可以将这个QChart对象添加到一个QChartView对象中,以便能够在窗口中显示出来。并通过设置窗口的属性,如窗口大小和标题等,来调整窗口的外观。 另外,对于制这么多的数据点,我们还可以考虑一些性能优化的方法,比如使用QScatterSeries代替QLineSeries来制散点图,或者通过设置QChart的图区域来减少制的数据点数量,从而提高制的效率。 综上所述,QtChart是可以很好地用来制十万个点的图形。我们可以通过使用QLineSeries类,将数据点添加到图形中,并通过QChart类和QChartView类来显示图形。同时,我们也可以通过一些性能优化的方法来提高制的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值