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 以及用于 ...
随机推荐
- Python之py9-py9博客情况获取
#!/usr/bin/env python # -*- coding:utf-8 -*- import os import re import datetime import requests url ...
- 使用doccano标注NER数据详细教程
使用doccano标注NER数据详细教程 说明: 首次发表日期:2024-10-12 参考资料: https://github.com/zjunlp/DeepKE/blob/main/README_T ...
- 实战!oracle 11g一键安装脚本分享
分享一个常用的数据库一键安装脚本,大家可以从我的网盘进行下载 链接: https://pan.baidu.com/s/1iV-0zeXrwhJxJcm9qA_P_g 提取码: apbc 脚本内容: # ...
- 基于 JuiceFS 的 KubeSphere DevOps 项目数据迁移方案
方案背景和目的 KubeSphere 自发布以来已有 2 年之久,从 2.1.0 版本至目前最新版本 3.3.开发人员的编译构建都基于环境平台的 DevOps 功能(底层是 jenkins)实现,如果 ...
- Windows10关闭系统自动更新--专业版
当你正在跑项目,cpu负荷,内存负荷,这时候Windows服务模块没有人情味滴突然来个更新撑爆你的磁盘读写,那感觉简直炸锅 像这样: 什么?加个固态就好了 你要是上了固态,就不应该看到这篇文章,相见即 ...
- C#_自定义简单ORM
一,基本思路:利用C#的标签和反射功能实现自定义轻量级ORM 标签Attribute附着在实体属性或实体类名上,这样可以取到实体对应的表名,属性对应的表字段名,数据类型,是否主键,字段注释等基本信息 ...
- Issac_GYM对Go2机器人的仿真心得
override 覆盖 torques 扭矩 1 args()参数信息等 cd /home/yyds/桌面/Gym2/legged_robot_competition-master/legged_gy ...
- OSG开发笔记(三十一):OSG中LOD层次细节模型介绍和使用
前言 模型较大的时候,出现卡顿,那么使用LOD(细节层次)进行层次细节调整,可以让原本卡顿的模型变得不卡顿. 本就是LOD介绍. Demo LOD 概述 LOD也称为层次细节模 ...
- 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-5-创建首个自动化脚本(详细教程)
1.简介 前面几篇宏哥介绍了两种(java和maven)环境搭建和浏览器的启动方法,这篇文章宏哥将要介绍第一个自动化测试脚本.前边环境都搭建成功了,浏览器也驱动成功了,那么我们不着急学习其他内容,首先 ...
- Spring源代码解析(四):Spring MVC
下面我们对Spring MVC框架代码进行分析,对于webApplicationContext的相关分析可以参见以前的文档,我们这里着重分析Spring Web MVC框架的实现.我们从分析Dispa ...