本文基本将QWT配置过程中可能出现的各种问题逐一罗列,希望对大家有帮助!
QWT,即Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目, 可生成各种统计图,是为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式提供, 输出方式可以是Curves(曲线),Slider(滚动条),Dials(圆盘),Compasses(仪表盘)等等。QWT工具库是基于Qt开发的,继承了Qt的跨平台特性。
下载:Qwt 下载地址
查看:Qwt 用户手册
直接官网安装QT QT Creator 8.0.2 + Qt 5.15.2 + MSVC2015-64bit
官网下载QWT QWT 6.1.4 或更高
用Qt Creator打开qwt.pro文件,即打开了Qwt工程。
本人尝试 6.2.0版本不需要,其他低版本如果编译有问题可以尝试
4、先点击构建菜单中qmake,再点击构建,开始编译
5、编译结束
解决步骤:
工具->选项->构建与运行
把使用jom代替nmake的勾选取消即可运行。(后面把勾选打回去也还是可以运行,但是新开项目就得重新取消了)
在qwt 6.2.0版本中不需要,之前版本如果有这个问题可以做如下尝试:
在QT 5.15.0中,一些目录被更改,如果你想用qt 5.15.0构建qwt,你需要修改qwt源代码,我在qwt_global.h文件中添加了这段代码,它在mvcs2019和qwt 6.1.4中工作。
#if defined(_WIN32)
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
#include
#endif
#endif
官网编译的Windows下的Creator软件是使用MSVC编译器编译的,因此用MinGW编译的qwt插件是无法被Creator正确识别的。解决方法是你可以选择重新编译Creator或者qwt,使得它们基于同一种编译平台.我的是基于MSVC2019 64bit的,所有编译qwt选择同样环境。
特别注意1:查看Qt Creator 编译版本:
特别注意2:拷贝路径不一样:
正常情况:
编译目录:build-qwt-Desktop_Qt_5_X_X_MSVC20XX_XX_bit-Debug\designer\plugins\designer
Qt Designer 目录:D:\Qt\Tools\QtCreator\bin\plugins\designer
选择正确的QtCreator版本后,我们需要将编译目录下的文件qwt_designer_plugin.dll复制到Qt Designer 目录
版本较高情况:
QT Creator 8.0
不同版本的QT下有不同版本的编译器,都对应不同的 Designer ,所以拷贝路径要直接复制到对应QT版本里的Designer,参考路径如下:
此时还不能编译,是因为qwt的动态库还没有配置好。
编译目录:build-qwt-Desktop_Qt_5_X_X_MSVC20XX_XX_bit-Debug\lib
Qt Designer bin 目录:D:\Qt\5.15.2\msvc20XX_XX\bin
Qt Designer lib 目录:D:\Qt\5.15.2\msvc20XX_XX\lib
Qt Designer include 目录:D:\Qt\5.15.2\msvc20XX_XX\include\Qwt (ps:include目录下需要自己创建Qwt文件夹)
1.将编译目录下的qwt.dll和qwtd.dll复制到Qt Designer bin 目录下
注:目录下产生qwt.dll, qwt.lib, qwtd.dll, qwtd.lib前两者对应release版本,后者对应debug版本。
如果是mingw编译的则qwt.lib qwtd.lib 后缀名是libqwt.a libqwtd.a
2.将编译目录下的qwt.lib和qwtd.lib复制到Qt Designer lib 目录下
3.将qwt源文件src目录中所有头文件复制到Qt Designer include 目录下
DEFINES += QT_DLL QWT_DLL
LIBS += -L"C:\Qt\5.XX.X\msvc2015_64\lib" -lqwtd
LIBS += -L"C:\Qt\5.XX.X\msvc2015_64\lib" -lqwt
INCLUDEPATH += C:\Qt\Qt5.12.11\5.12.11\msvc2015_64\include\Qwt
CONFIG += qwt
CONFIG(debug, debug|release) {
DEFINES += QT_DLL QWTD_DLL
LIBS += -L"D:\QT\5.9.2\msvc2015_64\lib" -lqwtd #Debug库
} else {
DEFINES += QT_DLL QWT_DLL
LIBS += -L"D:\QT\5.9.2\msvc2015_64\lib" -lqwt #release库
}
INCLUDEPATH += D:\QT\Qt5.9.2\5.9.2\msvc2017_64\include\qwt
在QtCreator中新建项目时会提示你创建构建目录,分别是Debug和Release。
默认情况下创建规则:…/build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Name}
其中:
–…:上级目录,即工程文件夹同级的目录;
–build:固定字符;
–%{CurrentProject:Name}:工程名;
–%{CurrentKit:FileSystemName}:当前构建套件名,取决于你Qt版本。如:Qt5.3.2 mingw版本生成;Desktop_Qt_5_3_2_MinGW;
–%{CurrentBuild:Name}:构建目标,Debug和Release
使用默认构建目录的结果就是,比如创建一个名为TestBuild的工程放到D:\QtTest目录,默认会创建如下目录结构:
1.将工具–>选项–>构建和运行中Default build directory修改为./%{CurrentBuild:Name}(改为你想要的目标目录都行);
2.把QtCreator关闭,把工程目录下后缀名为.pro.user的文件删掉;
3.用QtCreator打开工程,会提示你创建构建目录,此时提示的就是你修改后的Default build directory中填写的目录;
其中.pro.user文件记录了编译器、构建工具链、构建目录、版本……等工程编译相关信息,想要更换项目的编译环境,得删除这个文件,由QtCreator自动重新创建。