当前位置:首页 > > 充电吧
[导读]简介Qt的线性绘图控件有大名鼎鼎的Qwt,ChartDirector,小巧玲珑的QCustomPlot,当然还有自家的QtChart。长久以来QtChart在Qt家族里一直是收费的模块,只有商业版才可

简介

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

下载

这里用git下载QtChart,参考Qt Charts 5.7.0 安装教程
如果大家还用Qt5.4以下版本请升级完再看,Qt5.4以下是不支持滴

下载完目录是这样的:


开始编译前需要下载Perl:activePerl

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

编译QtChart

此时用Qt Creator加载qtcharts.pro

一杯茶的时间后:

此时在生成目录下生成:

安装

编译结束后就可以进行安装了
选择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:

#includeusing namespace QtCharts;

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

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

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

#includeQT_CHARTS_USE_NAMESPACE

放置在widget.h上:

#ifndef WIDGET_H
#define WIDGET_H

#includenamespace 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;xappend(x,sin(x));
}
QChart* c = new QChart();
c->addSeries(line1);
ui->chart->setChart(c);

效果如下:

总结

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

#includeQT_CHARTS_USE_NAMESPACE

否则会发生编译错误!

完!


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭