服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - Qt图形图像开发之曲线图表库QChart编译安装详细方法与使用实例

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

2021-08-23 15:48尘中远 C/C++

这篇文章主要介绍了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://github.com/qtproject/qtcharts.git

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

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

大家也可以直接到https://github.com/qt/qtcharts这里直接下载

下载完目录是这样的:

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

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

直接下一步点到头安装。

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

编译Qt Chart库

此时用Qt Creator加载qtcharts.pro

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

稍等片刻后:

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

此时在生成目录下生成:

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

至此QtChart库编译成功

安装Qt Chart库

编译结束后就可以进行安装了

选择Qt Creator项目栏 - 运行标签 - 添加部署构建

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

这里需要添加两个部署,一个是QtChart的安装,一个是QtChart文档的编译。

如图所示配置完后,点击运行

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

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

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

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

打开Qt目录下的lib文件夹和include文件夹可以看到被复制过来的QtChart信息。

这时,再看QtChart的生成目录,比第一次编译时多了一个doc文件夹

你只要把这个doc文件夹里的qtcharts文件夹和qtcharts.qch文件复制到Qt安装目录下的Docs文件夹内对应版本文件夹下即可

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

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

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

这时你的QtChart大部分已经配置完成。

Qt Chart使用实例

下面演示如何用Qt Creator的界面设计师创建一个QtChart,其他方法可见参考文献。

首先新建一个Widget项目

使用一个Widget作为Chart的载体,在界面上放置一个Widget

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

右键点击这个widget,把这个Widget提升。

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

把这个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

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

提升的类名为QChartView

头文件也为QChartView ,Qt每个类都有个无后缀的同类名文件,方便include

尝试编译一下程序会出现一个错误:

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

官方文档说明,使用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;

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

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

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

前面说了,用到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上:

  1. #ifndef WIDGET_H
  2. #define WIDGET_H
  3. #include <QWidget>
  4. namespace Ui {
  5. class Widget;
  6. }
  7. class Widget : public QWidget
  8. {
  9. Q_OBJECT
  10. public:
  11. explicit Widget(QWidget *parent = 0);
  12. ~Widget();
  13. private:
  14. Ui::Widget *ui;
  15. };
  16. #endif // WIDGET_H

此时在编译即可:

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

在构造函数里添加:

  1. QLineSeries* line1 = new QLineSeries();
  2. for(double x=0;x<10;x+=0.1)
  3. {
  4. line1->append(x,sin(x));
  5. }
  6. QChart* c = new QChart();
  7. c->addSeries(line1);
  8. ui->chart->setChart(c);

效果如下:

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

总结

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

#include <QtCharts>

QT_CHARTS_USE_NAMESPACE

否则会发生编译错误!

至此本文讲解的Qt曲线图表库QtChart编译安装详细步骤与使用实例就结束了,更多关于Qt曲线图表库QtChart相关知识请查看下面的相关文章

原文链接:https://blog.csdn.net/czyt1988/article/details/51399341

延伸 · 阅读

精彩推荐
  • C/C++c/c++内存分配大小实例讲解

    c/c++内存分配大小实例讲解

    在本篇文章里小编给大家整理了一篇关于c/c++内存分配大小实例讲解内容,有需要的朋友们可以跟着学习参考下。...

    jihite5172022-02-22
  • C/C++深入C++拷贝构造函数的总结详解

    深入C++拷贝构造函数的总结详解

    本篇文章是对C++中拷贝构造函数进行了总结与介绍。需要的朋友参考下...

    C++教程网5182020-11-30
  • C/C++C语言实现双人五子棋游戏

    C语言实现双人五子棋游戏

    这篇文章主要为大家详细介绍了C语言实现双人五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    两片空白7312021-11-12
  • C/C++OpenCV实现拼接图像的简单方法

    OpenCV实现拼接图像的简单方法

    这篇文章主要为大家详细介绍了OpenCV实现拼接图像的简单方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    iteye_183805102021-07-29
  • C/C++关于C语言中E-R图的详解

    关于C语言中E-R图的详解

    今天小编就为大家分享一篇关于关于C语言中E-R图的详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看...

    Struggler095962021-07-12
  • C/C++使用C++制作简单的web服务器(续)

    使用C++制作简单的web服务器(续)

    本文承接上文《使用C++制作简单的web服务器》,把web服务器做的功能稍微强大些,主要增加的功能是从文件中读取网页并返回给客户端,而不是把网页代码...

    C++教程网5492021-02-22
  • C/C++C语言main函数的三种形式实例详解

    C语言main函数的三种形式实例详解

    这篇文章主要介绍了 C语言main函数的三种形式实例详解的相关资料,需要的朋友可以参考下...

    ieearth6912021-05-16
  • C/C++c/c++实现获取域名的IP地址

    c/c++实现获取域名的IP地址

    本文给大家汇总介绍了使用c/c++实现获取域名的IP地址的几种方法以及这些方法的核心函数gethostbyname的详细用法,非常的实用,有需要的小伙伴可以参考下...

    C++教程网10262021-03-16