QCustomplot(一) 能做什么事

回到顶部

一、QCustomPlot简介

    之前在Qt之自绘制饼图这篇文章的说明中我简单的描述了下目前依赖于qt的第三方绘图库,此后我会针对自己使用QCustomPlot的情况做一总结,以方便大家参考

    QCustomPlot的官方网址:Qt Plotting Widget QCustomPlot - Introduction

    QCustomPlot的源码只有2个文件,所以添加供自己的工程师特别方便,或者你自己把这两个文件编译成静态库、动态库的形式都行。

回到顶部

二、效果预览

    如图1是我自己把官方的示例代码融合在一起做的一个小示例,展示了QCustomPlot能画的图,唯一美中不足的是QCustomPlot不能画饼图,这不也就有了文章开头说的Qt之自绘制饼图文章,这篇文章中我使用Qt中原生的QWidget来自己绘制了一个大小可变的饼图,有兴趣的小伙伴可以去看看。

图1 QCustomPlot使用

    看到上面的效果感觉怎么样呢,是不是还不错,可以满足大多数人的需求了,可是如果你们做的产品要求比较严格,那么你很可能就需要在QCustomPlot的源码上进行二次开发,甚至更改源码。。。

回到顶部

三、源码下载

    如图2所示,是下载QCustomPlot源码的方式,红色框中的文件是包含源码、示例和帮助文档的;黄色框中的文件只有源码;省下的一个文件看名字都知道了,只是一个动态库而已,那么我们就根据自己的需要来下载了,即使你都下载了也没事。这里我选择下载的是第一个,包含了帮助文档、示例代码以及源码。

图2 QCustomPlot下载

    细心的同学就会发现图2中有两个版本的QCustomPlot包,为什么会有两个包呢,其实是这样的,1.3.2版本是一个发布包,也就是说官方认为这是一个相对来说比较稳定的版本,而2.0.0-beta版本则是一个测试版本,或者说官方把其开源出来只是让大家帮忙测试,并回馈使用结果。

    以上的对比仅仅只是从源码的发布方式比较的,如果看了源码你就会发现,其实不仅仅如此,2.0.0-beta版本和1.3.2release版本还是有很大的区别,我个人也研究了几天的QCustomPlot源码,我觉着最大的区别应该只有3点,也就是2.0.0版本比1.3.2版本有优势的地方:真正的分层绘制、图标数据的分离和坐标轴刻度计算,说到这里我顺带提一嘴,QCustomPlot封装不好的地方,或者有待改进的地方,说的不对,欢迎指正,对于坐标轴和坐标轴文本是否绘制的判断条件仅仅是判断画笔的类型,对于大小刻度是否绘制的判断条件仅仅是坐标轴刻度的刻度个数时候为零,郁闷。。。

    后续我会分功能点,或者说是具体的类模块来分析QCustomPlot这个库,好了,这篇QCustomPlot的开篇文章到此也就基本结束了,有兴趣的小伙伴可以继续关注。。。

注:后续文章都是以QCustomPlot2.2.0beta版本为基础进行分析

回到顶部

四、相关文章

    Qt之自绘制饼图

 

转载于:https://www.cnblogs.com/guaiweihudou/p/10761681.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277857.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Teams app代码中enable nullable

昨天讲了一下如何把代码升级到 net6,今天我优化了好几个小时更新代码,enable了nullable。 c#的nullable我一直非常喜欢,它可以帮助开发人员,让开发人员去思考,哪些地方需要可以为null,哪些地方不需要。它并…

shiro(一)简介、理论知识

2019独角兽企业重金招聘Python工程师标准>>> 开涛学shiro:http://jinnianshilongnian.iteye.com/blog/2018398 shirospirngmvc参考: https://www.cnblogs.com/sharpest/p/5865732.html http://peirenlei.iteye.com/blog/2086639 https://blog.csdn.net/c…

2019.04.24笔记

*)关于swing 今天同学误解了我的意思,以为我要用java代码做页面和图形,给我推荐了swing。 swing真是眼熟,大学课程里的。通过后台代码操作页面和图形。记得当年大学时,swing就已经沦为一种过时的技术了。到现在&#x…

Teams 的 Meeting App

Teams 的 Meeting App 已经正式推出了一段时间,相应的文档也已经较为完善了,我接下来会写一系列的文章,来介绍如何开发一个自己的Meeting app。这篇文章作为这个系列的第一篇,将介绍 meeting app 是如何被使用的,有哪些…

Github上最受欢迎的Python轻量级框架Flask入门

flask最近终于发布了它的1.0版本更新,从项目开源到最近的1.0版本flask已经走过了8个年头。# app.py from flask import Flask app Flask(__name__)app.route("/") def hello():return "Hello World!"if __name__ "__main__":app.ru…

mysql表关联

mysql的表关联: left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行 转载于:https://www.cnblogs.com/bloghua…

开发第一个Meeting App

今天我们来看一下如何使用c# net6 来开发一个 teams的 meeting app。首先先确保本地安装了最新版本的 net6。创建一个目录,然后在目录下输入下面的命令行,让 dotnet 来生成一个初步的asp.net core 代码框架。 dotnet new razor代码框架生成如下的目录和…

solrCloud搭建

一.什么是solrCloud? SolrCoud(solr云)是solr提供的分布式搜索方案。当一个系统搜索请求并发很高的时候,就需要使用solrCloud来满足这些需求 solrCloud是基于solr和zookeeper的分布式的搜索方案,它的主要思想是使用zookeeper作为挤集群配置的…

Linux 添加新用户账号并赋予root权限

除了root用户之外,通常需要为每个管理创建各自的用户账号,方便每个管理员登录使用, 步骤如下: 1. 添加新用户账号 useradd mary.lee 2. 为新用户账号设置密码 passwd mary.lee 3. 为新用户账号赋予root权限 usermod -a -G root…

如何获取 Teams Meeting 的上下文信息

我们上一篇文章讲了如果使用 net6 和 c# 来快速开发一个最简单的 teams meeting app。为了让大家比较容易理解,上个sample非常简单,简单到没有什么功能,那我们现在就来慢慢扩展这个app的功能:看看如何获取 meeting 的上下文。 打…

php的运行流程

1、Zend引擎:Zend整体用纯C实现,是PHP的内核部分,他将PHP代码翻译(词法、语法解析等一系列编译过程)为可执行opcode的处理并实现相应的处理方法、实现了基本的数据结构(如:hashtable、OO&#x…

内置方法

isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object):pass obj Foo() isinstance(obj, Foo) issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object):pass class Bar(Foo):pass issubclass…

会议中的Meeting App

接着我们上两篇博客文章,我们说了如何开发会议前和会议后的 meeting app,那如何开发一个会议中的 app 呢,实际上比较简单,我们只需要在 tab 的配置项中勾选下面这两个选项即可。 勾选后,我们安装app到我们的一个会议中…

0-2岁的app开发人员必读,Android开发APP前的准备事项

2019独角兽企业重金招聘Python工程师标准>>> 随着移动互联网的兴起,各行各业对移动应用的需求越来越大,从事APP开发的人也越来越多,APP开发行业可以说是方兴未艾。APP开发是比较复杂的事情,涉及产品、美工设计、服务器…

FixedThreadPool吞掉了异常

为了方便遍描述问题,如下是简化后的 public class RunException {public static void main(String[] args) { ExecutorService readerPool Executors.newFixedThreadPool(3); readerPool.submit(new Runnable() { public void run() { throw new RuntimeException(…

Teams Meeting App的 task 弹出框

前几篇文章我们介绍了 Teams Meeting App 的各种类型和如何从无到有的使用 net6 和 c# 来开发一个 Teams Meeting app,那今天我们开始讨论一些 meeting app 的高级互动: task 弹出框。我们先来快速修改一下之前的代码,看看什么是 task 弹出框…

react 学习

react官网地址:http://facebook.github.io/react/ webpack官网地址:http://webpack.js.org/ 英文 https://www.webpackjs.com/ 中文 参考资料: React 入门实例教程-阮一峰 webpack的学习 学习列表: 了解react的语法&#x…

如何获取Teams Meeting 详情

最近有一些朋友问我,有没有可能获取到会议的详情,我搜索了目前所有的 teams 文档,发现有一个api可以获取,不过在我写这篇文章的时候,这个 api 还在 preview 阶段,可能在正式发布前,还会有一些变…

C++ : 内联函数和引用变量

一.内联函数 内联函数和普通函数的使用方法没有本质区别&#xff0c;我们来看一个例子&#xff0c;下面展示了内联函数的使用方法&#xff1a; #include <iostream> using namespace std; //下面展示内联函数的使用 inline double square(double x) {return (x*x);} int…

Teams Meeting 实时事件通知

Microsoft Teams最近推出了很多新的功能和api&#xff0c;我们今天就来一起看一下 teams 会议的实时事件通知&#xff0c;我觉得有了这个功能&#xff0c;我们的app&#xff0c;我们的bot又可以有很多可以实现的场景了。 我们来看看如何在 c# 里处理会议开始和结束这两个事件。…