QWT库的引入¶
直接引入¶
直接引入只需把QwtPlot.h和QwtPlot.cpp添加到工程里即可
直接引入的cmake示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
提示
qwt7.1之后合并了qwtplot3d库,因此需要引入opengl相关的依赖
基于cmake引入QWT库¶
这是推荐的引入
QWT库方式
首先不建议直接把整个qwt库作为子项目加入到你的项目中,而是先编译并安装到本地,编译安装方法参考:QWT构建说明
基于cmake引入QWT库按照如下步骤执行:
1. 指定QWT的安装目录¶
把安装目录下的lib/cmake/qwt位置设置给qwt_DIR变量(CMake在执行find_package(xx)时,会先查看是否有xx_DIR变量,如果有,会先查询xx_DIR下是否有对应的xxConfig.cmake文件)
提示
如果你使用默认安装目录,那么qwt_DIR变量可以不设置,cmake能自动找到
例如:
1 | |
2. 使用find_package加载库¶
QWT 提供了标准的 CMake 配置文件,可以通过 find_package 命令引入
1 2 3 4 5 6 7 | |
qwt项目提供了三个模块:
core模块,公共基础库(28 个模块),包含:- 颜色工具:
QwtColorMap(及子类)、QwtColorCycle、QwtColorMapPreset(22 种科学 colormap 预设) - 数学工具:
qwt_math.h、qwtSimdArgMinMax(SIMD 加速的 argmin/argmax) - 数据类型:
QwtInterval、QwtPoint3D、QwtPointPolar、QwtSamples、QwtBoxStatistics - 几何算法:
QwtBezier、QwtClipper - 坐标变换:
QwtTransform、QwtScaleMap、QwtScaleDiv、QwtScaleEngine - 时间处理:
QwtDate、QwtSystemClock - 通用算法与兼容层:
qwt_algorithm.hpp、qwt_qt5qt6_compat.hpp(Qt5/Qt6 兼容层) - 数据容器/系列/栅格:
QwtGridData、QwtSeriesData、QwtPointData、QwtSeriesStore、QwtRasterData、QwtMatrixRasterData、QwtGridRasterData
- 颜色工具:
plot模块,主要为2D绘图库,是原qwt的功能集成plot3d模块,主要为3D绘图库,是qwtplot3d的功能集成
依赖说明
plot和plot3d都依赖core模块,但彼此独立。qwt依赖的Qt模块为Core、Gui、Widgets(public),Concurrent、PrintSupport(private),可选Svg、OpenGL/OpenGLWidgets(由QWT_CONFIG_QWTSVG/QWT_CONFIG_QWTOPENGL控制),这些模块在引入qwt库时,会自动添加依赖此外
qwt7.1之后合并了qwtplot3d库,如果3D选项打开,会自动引入OpenGL::GLU依赖
公开的预定义宏¶
QWT在编译过程中有些预定义宏,如果你是用CMake管理项目,那么通过find_package加载库时,会自动预定定义好,无需手动添加
但如果你使用类似vistual studio的界面来手动引入库,你除了添加lib文件外,还需要指定预定于宏。引入qwtcore库你需要预定义宏QWTCORE_DLL,引入qwtplot库你需要预定义宏QWT_DLL,引入qwtplot3d库你需要预定义宏QWT3D_DLL
提示
作为现代c++项目,强烈建议使用cmake构建你的项目,这些预定义项都在cmake的配置中预制好