前言
最近项目中需要将Qt Linux版项目换到Windows平台上,发现用到了自定义控件,在经过一番折腾后,发现死活不能把自定义控件加到Qt左边的控件栏里,经查发现是Qt编译器默认是MinGW,而Qt Creator是MSVC 2015编译的(Qt5.9.2),要么修改Qt的默认编译器,要么重新编译Qt的源码,思量再三,选择了前者。最终将Qt Creator的构建套件由MinGW 32bit更换为了MSVC 2015 32bit,成功添加自定义控件到控件栏。
1.查看Qt Creator的编译器。
1.1 打开Qt Creator后,点击工具栏上的“帮助”->“关于Qt Creator”,即可查看Qt Creator是什么编译的(如图所示)。
1.2 点击工具栏上“工具”->“选项”->“构建和运行”->“构建套件(Kit)”,可以看到除MinGW外其他皆为感叹号。(如图所示)
2.安装Windows SDK,Microsoft Visual C++库的运行时组件和Microsoft 生成工具 2015。
2.1 安装Windows SDK。
Windows SDK下载地址为https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/,安装过程比较简单粗暴,一路Next就行,安装步骤如下图所示。
安装时间较长,慢慢等待即可。
安装完成
2.2 安装Microsoft Visual C++库的运行时组件和Microsoft 生成工具 2015(安装过VS2015的跳过)。
2.2.1下载地址为https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/,进入网页选择“可再发行组件和生产工具”栏,选择对应版本下载即可,如下图所示。
下载好的exe文件
2.2.2 点击vc_redist.x64.exe安装。
然而我却安装失败。
究其原因,是因为我之前安装过VS2015,卸载不干净所致,来到控制面板卸载程序,卸载图中程序。
卸载完成后再次安装即安装成功。
2.2.3 点击visualcppbuildtools_full.exe开始安装。
然而却安装失败。解决方法:链接:https://pan.baidu.com/s/1aYpbziCE5GRmSvx7Bhrigw
提取码:88g7,下载后解压,解压后如图所示,点击文件夹下的visualcppbuildtools_full.exe开始安装,即可安装成功。
解压后的文件
安装完成
3.配置Qt Creator。
3.1 点击Qt工具栏上“工具”->“选项”->“构建和运行”->“编译器”,可以看到里面已经多了MSVC编译器。
4.将自定义控件添加到Qt Creator中。
4.1 新建Qt4 设计师自定义控件项目,编写自定义控件不在赘述,各位自行查阅资料,完成代码编写后,右下角选择构建套件(如图所示,注意选择Release)
4.2 点击“工具栏”->“执行qmake”,完成后构建项目,构建完成后在构建目录下build-XXX-Release中的release文件下会生成一个lib和dll文件。
4.3 将这两个文件拷贝到Qt安装目录下的Qt5.9.2\Tools\QtCreator\bin\plugins\designer\中,如我的电脑拷贝到D:\Qt5.9.2\Tools\QtCreator\bin\plugins\designer\中。重启Qt Creator,即可在左侧控件栏看到自定义控件。
5.引用自定义控件
5.1 在项目同级目录下新建include和lib文件夹(可依据个人习惯更改),将上方中的两个文件(dll和lib文件)放入lib文件夹中,将自定义控件项目中的.h文件放入include文件夹(如我这里是progressbar.h)。
5.2 在Qt项目中的.pro文件下添加如下代码(视个人情况而定),执行qmake后即可使用自定义控件。
LIBS += $$PWD/lib/progressplugin.lib
INCLUDEPATH += $$PWD/include