Qt 之 qwt 和 qwtpolar
1 Qwt
Qwt 全称为 Qt Widgets for Technical Applications,用于专业技术领域的可视化显示,如下所示:
左图为二阶系统的频率响应;中图为德国小城 Friedberg 2007年的温度统计; 右图为2012年4月,Linux 各个发行版,Debian, Mint, Ubuntu等,每天的平均点击次数

另外,还有一些不常用的,比如:左边的强度图(不同的颜色代表强度的不同); 中间的各种仪表盘(指南针,速度计等); 右边组合成的示波器等

下面介绍在 Windows 系统下,下载、编译、安装 Qwt 到 Qt 的过程。
1.1 下载
qwt 的官方网站为: https://qwt.sourceforge.io/index.html
qwt-6.1.4 版本下载地址: https://sourceforge.net/projects/qwt/files/qwt/ ,解压到 D:\Qt\qwt-6.1.4,更改 qwtconfig.pri 中的 #27
win32 {
QWT_INSTALL_PREFIX = D:/Qt/Qwt-$$QWT_VERSION
# QWT_INSTALL_PREFIX = C:/Qwt-$$QWT_VERSION-qt-$$QT_VERSION
}
注释掉 qwtbuild.pri 中的 #30
#CONFIG += debug_and_release
CONFIG += build_all
1.2 编译
1.2.1 qmake
打开 Qt 5.12.4 64-bit for Desktop (MSVC 2015),切换到 qwt 解压后的目录,输入 qmake qwt.pro 进行编译,生成 Makefile 文件。

注意: 如果没有 qmake 命令,一般是环境变量没有配置,需要配置 qmake.exe 的所在路径,此处为 D:\Qt\Qt5.12.4\5.12.4\msvc2015_64\bin
在执行该步骤时,提示 Project ERROR

于是搜索到 cl 命令,发现其位于 D:\Program Files\Microsoft Visual Studio 14.0\VC\bin,则将该路径也配置到环境变量 path 中
1.2.2 nmake
打开 VS2015 x64 本机工具命令提示符,切换到 qwt 生成 Makefile 文件的目录,先输入 nmake,再输入 nmake install

1.2.3 examples
在 qwt 目录下,切换到 examples 目录, 先执行 qmake examples.pro,再执行 nmake
2 Qwtpolar
Qwtpolar 是 Qwt 的扩展,主要用来绘制极坐标下的函数图形,如下所示:

qwtpolar 官方网站为:https://qwtpolar.sourceforge.io/index.html
qwtpolar-1.1.1 下载地址: https://sourceforge.net/projects/qwtpolar/
和 qwt 的安装步骤一致,解压后,首先修改 qwtpolarconfig.pri 和 qwtpolarbuild.pri 文件;再执行 qmake qwtpolar.pro;完毕后再依次执行 nmake,nmake install
3 配置
3.1 额外配置工程
在每个 .pro 中,指定库文件(.lib) 和 头文件 (.h)
LIBS += -L$$PWD/../../Qt/qwt-6.1./lib/ -lqwtd
LIBS += -L$$PWD/../../Qt/qwtpolar-1.1./lib/ -lqwtpolard INCLUDEPATH += $$PWD/../../Qt/qwt-6.1./src
INCLUDEPATH += $$PWD/../../Qt/qwtpolar-1.1./src
3.2 模块配置
3.2.1 环境变量
增加环境变量,变量值为 qwt.prf 所在的目录,如下所示:

3.2.2 库文件
将 D:\Qt\qwt-6.1.4\lib 下的 qwt.lib 和 qwtd.lib 复制到 D:\Qt\Qt5.12.4\5.12.4\msvc2015_64\lib 目录下
将 D:\Qt\qwt-6.1.4\lib 下的 qwt.dll 和 qwtd.dll 复制到 D:\Qt\Qt5.12.4\5.12.4\msvc2015_64\bin 目录下
将 D:\Qt\qwt-6.1.4\designer\plugins\designer 下的 qwt_designer_plugin.dll 复制到 D:\Qt\Qt5.12.4\5.12.4\msvc2015_64\plugins\designer 目录下
同理,将 qwtpolar-1.1.1 下的 文件复制到相同目录
3.2.3 头文件
在 D:\Qt\Qt5.12.4\5.12.4\msvc2015_64\include 目录下,新建 Qwt 文件夹,将 qwt 和 qwtpolar 下的头文件全部复制到此处
3.2.4 工程配置
以上步骤都执行完毕后,则当使用 qwt 和 qwtpolar 时,只需要添加对应的模块名称即可
CONFIG += qwt
CONFIG += qwtpolar
4 后续问题
按照以上步骤,在 Qt 5.12.4 的 Creator 中未显示 Qwt Widgets 和 QwtPolarPlot 的 ui 设计界面,而在 Qt 5.12.4 中,单独打开 Designer,却可以显示二者,不知道是什么原因...
参考资料
“Windows 环境下 Qwt 安装和使用”, http://www.jianshu.com/p/d6fb96c3e6b0
Qwt 安装笔记, http://blog.csdn.net/liyuanbhu/article/details/40825065
Qt 之 qwt 和 qwtpolar的更多相关文章
- Qt 之 qwt 和 qwtpolar 的编译配置
1 Qwt Qwt 全称为 Qt Widgets for Technical Applications,用于专业技术领域的可视化显示,如下所示: 左图为二阶系统的频率响应:中图为德国小城 Fried ...
- Qt之Qwt学习之安装
QWT+qtcreator 编译.安装使用 目录:一.Qwt简介 二.QWT编译 一.Qwt简介 QWT:Qt Widgets for Technical Applications,是开源的2D绘图库 ...
- Qt Sqlite qwt 发布过程中碰到的问题runtime error
qt版本:4.8.0 qwt版本:6.1.2 使用dll show检测缺少的dll,或者笨一点的方法,点击运行差什么找什么放进去: 左上显示exe调用哪些dll,右边是dll又再次调用啦哪些dll: ...
- qt使用QWT注意事项
当继承某个QWT类时,有是使用O_OBJECT弘会出现问题 切记在工程文件里别忘了添加这一句 DEFINES+=QWT_DLL
- Qt编译安装qwt错误moc/xxx Error:126
最近搞设计,需要在上位机上绘制曲线,在网上找了找,发现python的matplotlib和Qt的qwt都不错,本着难度最小原则,选择了Qt下面的qwt,安装过程中遇到了编译错误:moc/xxx Err ...
- WIN7 下 Qt Creator 安装 QWT
WIN7 下 Qt Creator 安装 QWT 环境:WIN7 +QT Creator2.6.2 1.下载QWT源代码 qwt-6.1-rc3.zip 2 编译QWT open projects- ...
- windows 7下qtcreator里QWT文件的pro配置
http://blog.chinaunix.net/uid-20717410-id-272331.html 把编译好的qwt的include文件夹下面 所有的.h文件 复制到qt目录下 然后在pro里 ...
- 【原创】基于ZYNQ7000的交叉编译工具链Qt+OpenCV+ffmpeg等库支持总结(二)
承接上文http://www.cnblogs.com/bombe1013/p/3294301.html,我们接下来说说Qt的移植与安装. 很喜欢Qt这个库以及Qt creater这个IDE,其实个人觉 ...
- qt 5.1.1 on CentOS 6.4
Overview If you are trying to install Qt and Qwt [qwt.sourceforge.net] (Qt Widgets for Technical App ...
随机推荐
- hdu 2209 bfs+状压
http://acm.hdu.edu.cn/showproblem.php?pid=2209 不知为啥有种直觉.会出状压+搜索的题,刷几道先 简单的BFS.状压表示牌的状态, //#pragma co ...
- Ajax 学习总结
Ajax 技术在 JavaWeb 应用中随处可见,比如购物车中根据商品数量及时更新等应用,那么我们今天就来说说 Ajax 的一些小应用! Ajax 技术也就是允许浏览器与服务器通信而无需刷新当前页面, ...
- 自学Python5.2-类、模块、包
类.模块.包 一.类 类的概念在许多语言中出现,很容易理解.它将数据和操作进行封装,以便将来的复用. 二.模块module 通常模块为一个文件,直接使用import来导入就好了.可以作为module ...
- mysql还原数据库时,提示ERROR 1046 (3D000) No database selected 的解决方法
使用mysql数据库的朋友, 经常会使用mysqldump备案数据库, 然后到新服务器还原, 这个过程中, 有朋友会遇到ERROR 1046 (3D000) No database selected ...
- springboot整合系列
Spring Boot 系列 博客原文:http://blog.csdn.net/isea533/article/details/50412212 Spring Boot 入门 Spring Boot ...
- go基础之--函数和map
在整理函数之前先整理一下关于指针 指针 普通类型变量存的就是值,也叫值类型.指针类型存的是地址,即指针的值是一个变量的地址.一个指针指示值所保存的位置,不是所有的值都有地址,但是所有的变量都有.使用指 ...
- 《程序员修炼之道:从小工到专家》【PDF】下载
<程序员修炼之道:从小工到专家>[PDF]下载链接: https://u253469.ctfile.com/fs/253469-231196340 内容简介 <程序员修炼之道> ...
- js登录滑动验证,不滑动无法登陆
js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html; ...
- iOS NSString 文本不同的颜色 标题+文本字体大小 行间距/删除不需要的字符 /以及自适应高度
#import <Foundation/Foundation.h> @interface TextsForRow : NSObject @property(nonatomic,copy)N ...
- python学习日记:day11-----装饰器
1,time模块 import time print(time.sleep())#让程序在执行到这个位置到时候停一会 print('哈哈哈') 获取当前时间 import time time.time ...