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 以及用于 ...
随机推荐
- Qunar 云原生容器化落地实践
作者|邹晟 去哪儿网基础平台技术专家 背景 近几年,云原生和容器技术非常火爆,且日趋成熟,众多企业慢慢开始容器化建设,并在云原生技术方向上不断的探索和实践.基于这个大的趋势, 2020 年底 Quna ...
- OpenFunction v1.0.0 发布:集成 WasmEdge,支持 Wasm 函数和更完整的 CI/CD
OpenFunction 是一个开源的云原生 FaaS(Function as a Service,函数即服务)平台,旨在帮助开发者专注于业务逻辑的研发.今天,我们非常高兴地宣布 OpenFuncti ...
- 解决IDEA中SpringBoot框架使用@Autowired注解方式注入mapper对象出现红色下划线的问题
点击编译器左上角File,点击settings进入设置界面,找到图片中对应的位置,将红线圈住的地方改为Warning,点击右下角的Apply即可
- EXCEL获取拼音首字母
Excel 2016 按组合键ALT+F11调出VB窗口--插入--模块(复制代码到新模块中,复制完后始可关闭VB窗口) 复制以下代码到模块中 Function getpychar(char) tmp ...
- JavaScript String 对象-常用知识点
JavaScript String 对象-常用知识点 对象用于处理文本(字符串). 对象创建方法: new String(). String 对象属性 属性 描述 constructor 对创建该对象 ...
- 第八届御网杯线下赛Pwn方向题解
由于最近比赛有点多,而且赶上招新,导致原本应该及时总结的比赛搁置了,总结来说还是得多练,因为时间很短像这种线下赛,一般只有几个小时,所以思路一定要清晰,我还是经验太少了,导致比赛力不从心,先鸽了~ S ...
- Mac安装Docker
一.下载 从官网下载速度太慢,推荐在阿里云镜像下载. 下载地址:http://mirrors.aliyun.com/docker-toolbox/mac/docker-for-mac/stable/D ...
- CSP-S模拟赛20241004
A 你考虑 可以把这个数组当中的每个数表示成另一种形式:\(a_i = k_i\times x+b\)(其中\(x\)是模数,\(b\)为余数). 对于求两个数是否对于某个余数同余,显然你要判断他们两 ...
- 新手入门Java自动化测试的利器:Selenium WebDriver
今天我们将深入探讨一款强大的Java自动化测试工具--Selenium WebDriver.在正式介绍Selenium WebDriver之前,让我们首先对Selenium本身进行简要概述,以便更好地 ...
- 基于surging的木舟平台如何构建起微服务
一.概述 木舟平台分为微服务平台和物联网平台, 上面几篇都是介绍如何通过网络组件接入设备,那么此篇文章就细致介绍下在木舟平台下如何构建微服务. 木舟 (Kayak) 是什么? 木舟(Kayak)是基于 ...