Qt开源作品34-qwt无需插件源码
一、前言
QWT,全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目,可生成各种统计图。为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式提供,输出方式可以是Curves(曲线),Slider(滚动条),Dials(圆盘),Compasses(仪表盘)等等。该工具库基于Qt开发,所以也继承了Qt的跨平台特性。
在Qt做项目中,如果需要用到曲线的话,很可能会用到qwt组件,但是很多初学者苦于编译的种种烦恼,比如默认qwt是插件的形式提供的,需要编译成你对应编译器的插件动态库,然后引入头文件链接动态库再用,甚至有些初学者想直接集成到qtcreator中,发现怎么都搞不定,烦啊,搞得一点兴趣都没有了,其实默认Qt的安装包自带的mingw编译器,很多人默认选择的也是mingw编译器的Qt,而安装包中的Qtcreator呢又是msvc编译器编译的,因为版本不对所以无法集成,那怎么办呢,用户其实很多时候只需要new一个类出来放对应的布局或者窗体上即可,然后调用对应的方法来设置和处理,根本不想这么复杂,于是抽点时间将qwt中的所有控件的完整源码抽取出来,直接源码集成到你的项目,在你的项目只需要引入pri文件即可,永远不要再去搞烦人的编译插件了。
二、代码思路
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport concurrent
DEFINES += QWT_NO_SVG QWT_NO_OPENGL
INCLUDEPATH += $$PWD
HEADERS += \
$$PWD/qwt.h \
$$PWD/qwt_abstract_legend.h \
$$PWD/qwt_abstract_scale.h \
$$PWD/qwt_abstract_scale_draw.h \
$$PWD/qwt_abstract_slider.h \
$$PWD/qwt_analog_clock.h \
$$PWD/qwt_arrow_button.h \
$$PWD/qwt_clipper.h \
$$PWD/qwt_color_map.h \
$$PWD/qwt_column_symbol.h \
$$PWD/qwt_compass.h \
$$PWD/qwt_compass_rose.h \
$$PWD/qwt_compat.h \
$$PWD/qwt_counter.h \
$$PWD/qwt_curve_fitter.h \
$$PWD/qwt_date.h \
$$PWD/qwt_date_scale_draw.h \
$$PWD/qwt_date_scale_engine.h \
$$PWD/qwt_dial.h \
$$PWD/qwt_dial_needle.h \
$$PWD/qwt_dyngrid_layout.h \
$$PWD/qwt_event_pattern.h \
$$PWD/qwt_global.h \
$$PWD/qwt_graphic.h \
$$PWD/qwt_interval.h \
$$PWD/qwt_interval_symbol.h \
$$PWD/qwt_knob.h \
$$PWD/qwt_legend.h \
$$PWD/qwt_legend_data.h \
$$PWD/qwt_legend_label.h \
$$PWD/qwt_magnifier.h \
$$PWD/qwt_math.h \
$$PWD/qwt_matrix_raster_data.h \
$$PWD/qwt_null_paintdevice.h \
$$PWD/qwt_painter.h \
$$PWD/qwt_painter_command.h \
$$PWD/qwt_panner.h \
$$PWD/qwt_picker.h \
$$PWD/qwt_picker_machine.h \
$$PWD/qwt_pixel_matrix.h \
$$PWD/qwt_plot.h \
$$PWD/qwt_plot_abstract_barchart.h \
$$PWD/qwt_plot_barchart.h \
$$PWD/qwt_plot_canvas.h \
$$PWD/qwt_plot_curve.h \
$$PWD/qwt_plot_dict.h \
$$PWD/qwt_plot_directpainter.h \
$$PWD/qwt_plot_grid.h \
$$PWD/qwt_plot_histogram.h \
$$PWD/qwt_plot_intervalcurve.h \
$$PWD/qwt_plot_item.h \
$$PWD/qwt_plot_layout.h \
$$PWD/qwt_plot_legenditem.h \
$$PWD/qwt_plot_magnifier.h \
$$PWD/qwt_plot_marker.h \
$$PWD/qwt_plot_multi_barchart.h \
$$PWD/qwt_plot_panner.h \
$$PWD/qwt_plot_picker.h \
$$PWD/qwt_plot_rasteritem.h \
$$PWD/qwt_plot_renderer.h \
$$PWD/qwt_plot_rescaler.h \
$$PWD/qwt_plot_scaleitem.h \
$$PWD/qwt_plot_seriesitem.h \
$$PWD/qwt_plot_shapeitem.h \
$$PWD/qwt_plot_spectrocurve.h \
$$PWD/qwt_plot_spectrogram.h \
$$PWD/qwt_plot_textlabel.h \
$$PWD/qwt_plot_tradingcurve.h \
$$PWD/qwt_plot_zoneitem.h \
$$PWD/qwt_plot_zoomer.h \
$$PWD/qwt_point_3d.h \
$$PWD/qwt_point_data.h \
$$PWD/qwt_point_mapper.h \
$$PWD/qwt_point_polar.h \
$$PWD/qwt_raster_data.h \
$$PWD/qwt_round_scale_draw.h \
$$PWD/qwt_samples.h \
$$PWD/qwt_sampling_thread.h \
$$PWD/qwt_scale_div.h \
$$PWD/qwt_scale_draw.h \
$$PWD/qwt_scale_engine.h \
$$PWD/qwt_scale_map.h \
$$PWD/qwt_scale_widget.h \
$$PWD/qwt_series_data.h \
$$PWD/qwt_series_store.h \
$$PWD/qwt_slider.h \
$$PWD/qwt_spline.h \
$$PWD/qwt_symbol.h \
$$PWD/qwt_system_clock.h \
$$PWD/qwt_text.h \
$$PWD/qwt_text_engine.h \
$$PWD/qwt_text_label.h \
$$PWD/qwt_thermo.h \
$$PWD/qwt_transform.h \
$$PWD/qwt_wheel.h \
$$PWD/qwt_widget_overlay.h
SOURCES += \
$$PWD/qwt_abstract_legend.cpp \
$$PWD/qwt_abstract_scale.cpp \
$$PWD/qwt_abstract_scale_draw.cpp \
$$PWD/qwt_abstract_slider.cpp \
$$PWD/qwt_analog_clock.cpp \
$$PWD/qwt_arrow_button.cpp \
$$PWD/qwt_clipper.cpp \
$$PWD/qwt_color_map.cpp \
$$PWD/qwt_column_symbol.cpp \
$$PWD/qwt_compass.cpp \
$$PWD/qwt_compass_rose.cpp \
$$PWD/qwt_counter.cpp \
$$PWD/qwt_curve_fitter.cpp \
$$PWD/qwt_date.cpp \
$$PWD/qwt_date_scale_draw.cpp \
$$PWD/qwt_date_scale_engine.cpp \
$$PWD/qwt_dial.cpp \
$$PWD/qwt_dial_needle.cpp \
$$PWD/qwt_dyngrid_layout.cpp \
$$PWD/qwt_event_pattern.cpp \
$$PWD/qwt_graphic.cpp \
$$PWD/qwt_interval.cpp \
$$PWD/qwt_interval_symbol.cpp \
$$PWD/qwt_knob.cpp \
$$PWD/qwt_legend.cpp \
$$PWD/qwt_legend_data.cpp \
$$PWD/qwt_legend_label.cpp \
$$PWD/qwt_magnifier.cpp \
$$PWD/qwt_math.cpp \
$$PWD/qwt_matrix_raster_data.cpp \
$$PWD/qwt_null_paintdevice.cpp \
$$PWD/qwt_painter.cpp \
$$PWD/qwt_painter_command.cpp \
$$PWD/qwt_panner.cpp \
$$PWD/qwt_picker.cpp \
$$PWD/qwt_picker_machine.cpp \
$$PWD/qwt_pixel_matrix.cpp \
$$PWD/qwt_plot.cpp \
$$PWD/qwt_plot_abstract_barchart.cpp \
$$PWD/qwt_plot_axis.cpp \
$$PWD/qwt_plot_barchart.cpp \
$$PWD/qwt_plot_canvas.cpp \
$$PWD/qwt_plot_curve.cpp \
$$PWD/qwt_plot_dict.cpp \
$$PWD/qwt_plot_directpainter.cpp \
$$PWD/qwt_plot_grid.cpp \
$$PWD/qwt_plot_histogram.cpp \
$$PWD/qwt_plot_intervalcurve.cpp \
$$PWD/qwt_plot_item.cpp \
$$PWD/qwt_plot_layout.cpp \
$$PWD/qwt_plot_legenditem.cpp \
$$PWD/qwt_plot_magnifier.cpp \
$$PWD/qwt_plot_marker.cpp \
$$PWD/qwt_plot_multi_barchart.cpp \
$$PWD/qwt_plot_panner.cpp \
$$PWD/qwt_plot_picker.cpp \
$$PWD/qwt_plot_rasteritem.cpp \
$$PWD/qwt_plot_renderer.cpp \
$$PWD/qwt_plot_rescaler.cpp \
$$PWD/qwt_plot_scaleitem.cpp \
$$PWD/qwt_plot_seriesitem.cpp \
$$PWD/qwt_plot_shapeitem.cpp \
$$PWD/qwt_plot_spectrocurve.cpp \
$$PWD/qwt_plot_spectrogram.cpp \
$$PWD/qwt_plot_textlabel.cpp \
$$PWD/qwt_plot_tradingcurve.cpp \
$$PWD/qwt_plot_xml.cpp \
$$PWD/qwt_plot_zoneitem.cpp \
$$PWD/qwt_plot_zoomer.cpp \
$$PWD/qwt_point_3d.cpp \
$$PWD/qwt_point_data.cpp \
$$PWD/qwt_point_mapper.cpp \
$$PWD/qwt_point_polar.cpp \
$$PWD/qwt_raster_data.cpp \
$$PWD/qwt_round_scale_draw.cpp \
$$PWD/qwt_sampling_thread.cpp \
$$PWD/qwt_scale_div.cpp \
$$PWD/qwt_scale_draw.cpp \
$$PWD/qwt_scale_engine.cpp \
$$PWD/qwt_scale_map.cpp \
$$PWD/qwt_scale_widget.cpp \
$$PWD/qwt_series_data.cpp \
$$PWD/qwt_slider.cpp \
$$PWD/qwt_spline.cpp \
$$PWD/qwt_symbol.cpp \
$$PWD/qwt_system_clock.cpp \
$$PWD/qwt_text.cpp \
$$PWD/qwt_text_engine.cpp \
$$PWD/qwt_text_label.cpp \
$$PWD/qwt_thermo.cpp \
$$PWD/qwt_transform.cpp \
$$PWD/qwt_wheel.cpp \
$$PWD/qwt_widget_overlay.cpp
三、效果图

四、开源主页
- 以上作品完整源码下载都在开源主页,会持续不断更新作品数量和质量,欢迎各位关注。
- 本开源项目已经成功升级到V2.0版本,分门别类,图文并茂,保你爽到爆。
- Qt开源武林秘籍开发经验,看完学完,20K起薪,没有找我!
- 国内站点:https://gitee.com/feiyangqingyun/QWidgetDemo
- 国际站点:https://github.com/feiyangqingyun/QWidgetDemo
- 开源秘籍:https://gitee.com/feiyangqingyun/qtkaifajingyan
- 个人主页:https://qtchina.blog.csdn.net/
- 知乎主页:https://www.zhihu.com/people/feiyangqingyun/
Qt开源作品34-qwt无需插件源码的更多相关文章
- 如何查看google chrome 插件源码
常用浏览器google chrome 有很多优秀的插件,寂寞的时候想看看人家是怎么实现的,说是快那就动手吧 插件代码位置 本人mac笔记本,chrome 插件位置如下 $ cd /Users/vin ...
- java开源即时通讯软件服务端openfire源码构建
java开源即时通讯软件服务端openfire源码构建 本文使用最新的openfire主干代码为例,讲解了如何搭建一个openfire开源开发环境,正在实现自己写java聊天软件: 编译环境搭建 调试 ...
- Ocelot简易教程(七)之配置文件数据库存储插件源码解析
作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9852711.html 上篇文章给大家分享了如何集成我写的一个Ocelot扩展插件把Ocelot的配置存储 ...
- 基于tomcat插件的maven多模块工程热部署(附插件源码)
内容属原创,转载请注明出处 写在前面的话 最近一直比较纠结,归根结底在于工程的模块化拆分.以前也干过这事,但是一直对以前的结果不满意,这会重操旧业,希望搞出个自己满意的结果. 之前有什么不满意的呢? ...
- vue打包时,assets目录 和static目录下文件的处理区别(nodeModule中插件源码修改后,打包后的文件应放在static目录)
为了回答这个问题,我们首先需要了解Webpack如何处理静态资产.在 *.vue 组件中,所有模板和CSS都会被 vue-html-loader 及 css-loader 解析,并查找资源URL.例如 ...
- 如何优雅的阅读 GitHub 上开源 js 框架和库的源码
如何优雅的阅读 GitHub 上开源 js 框架和库的源码 step 先总后分,即先了解一下啊框架的大体架构,又一个全局的认识,在选择某些和感兴趣的部分,仔细阅读,各个击破: 带着问题阅读,用到了什么 ...
- Maven 依赖调解源码解析(二):如何调试 Maven 源码和插件源码
本文是系列文章<Maven 源码解析:依赖调解是如何实现的?>第二篇,主要介绍如何调试 Maven 源码和插件源码.系列文章总目录参见:https://www.cnblogs.com/xi ...
- 开源网站流量统计系统Piwik源码分析——参数统计(一)
Piwik现已改名为Matomo,这是一套国外著名的开源网站统计系统,类似于百度统计.Google Analytics等系统.最大的区别就是可以看到其中的源码,这正合我意.因为我一直对统计的系统很好奇 ...
- 了解腾讯开源的多渠道打包技术 VasDolly源码解析
一.概要 大家应该都清楚,大家上线app,需要上线各种平台,比如:小米,华为,百度等等等等,我们多数称之为渠道,如果发的渠道多,可能有上百个渠道. 针对每个渠道,我们希望可以获取各个渠道的一些独立的统 ...
- Android 热修复Nuwa的原理及Gradle插件源码解析
现在,热修复的具体实现方案开源的也有很多,原理也大同小异,本篇文章以Nuwa为例,深入剖析. Nuwa的github地址 https://github.com/jasonross/Nuwa 以及用于 ...
随机推荐
- mysql+navicat+eclipse+jsp
mysql server 5.5安装 微信公众号搜软件智库,然后找到mysql 5.5 百度网盘下载对应自己电脑版本的mysql 百度网盘:http://pan.baidu.com/s/1jI5oB6 ...
- Linux环境下的mysql安装
MySQL8.0.26-Linux版安装 1.准备一台Linux服务器 云服务器或者虚拟机都可以; Linux的版本为 Centos7; 2.下载Linux版MySQL安装包 https://down ...
- IHostedService(BackgroundService)的启动和停止顺序
一句话总结: 按照Add顺序启动, 先启动, 后停止. Host 源代码 public async Task StartAsync(CancellationToken cancellationToke ...
- 警告:攻击者利用 SnoarQube 漏洞盗取国内多个机构的大量源码!
2021 年 10 月 22 日,国外知名媒体 cybernews 发文称,有未知攻击者攻击并渗透了博世 iSite 的服务器,并盗取了这家制造业巨头的 5G 物联网连接平台的源代码. 攻击者声称通过 ...
- 在Lua中实现Rust对象的绑定
实现目标:能将Rust对象快速的映射到lua中使用,尽可能的简化使用. 功能目标 以struct HcTestMacro为例: 类型构建,在lua调用local val = HcTestMacro.n ...
- 2021年华为Java面试真题解析,帮你解决95%以上的问题!
前言 由于作者面试过程中高度紧张,本文中只列出了自己还记得的部分题目. 经历了漫长一个月的等待,终于在前几天通过面试官获悉已被蚂蚁金服录取,这期间的焦虑.痛苦自不必说,知道被录取的那一刻,一整年的阴霾 ...
- vue中绘制echarts折线图
1.安装echartscnpm install echarts --save 2.vue代码 <template> <div> //下面的div给表一个容器 <div i ...
- ubuntu环境安装街机风格的太空飞船游戏(2D飞机射击游戏)游戏——Chromium_B.S.U.
相关: https://en.wikipedia.org/wiki/Chromium_B.S.U. https://manpages.ubuntu.com/manpages/focal/en/man6 ...
- getPropByPath:根据字符串路径获取对象属性 : 'obj[0].count'
function getPropByPath(obj, path, strict) { let tempObj = obj; path = path.replace(/\[(\w+)\]/g, '.$ ...
- 小米R3G刷了padavan后时间不同步和定时关闭外网(wan)端口
怎么刷openwrt或者padavan请见我2022年3月份的帖子 https://www.cnblogs.com/jar/p/15954037.html 最近遇到个新环境,遂拿出来用用 有1个问题和 ...