项目需要设计一个软件,要用到Qt,由此开启了与Qt斗智斗勇的艰难道路。
1.环境配置问题
(1)最开始用的vs2017社区版,按照网上所说的安装配置步骤,先后安装vs2017+qt5.12+qt vs tools插件。但在Qt VS Tools设置qt版本时,总是报错说无法识别版本(当时没有截屏,现在也不想复现这个错误了,没图)。重装qt,安装多个编译器,甚至更换了qt版本,都不行。
无意中蒙到的解决办法:卸载vs2017社区版,安装专业版(professional),qt的多个编译器、多个版本都能添加进来。
(2)新建GUI项目后,双击.ui文件无法打开Qt Creator,报错
试出来的解决办法:更换了qt vs tools插件版本即可。在vs2017中联机查找下载的插件是最新版本2.6.7,可能与老版本的qt不一定适用,可以去官网或国内镜像下载低版本的插件与qt匹配。我下载的是2.2.2版本。
(3)新建项目,要在项目属性中,在包含目录中添加qt的include目录,在库目录中添加qt的lib目录,否则会导致找不到头文件等错误。
2.库依赖问题
新建Qt GUI应用程序项目,使用本地Windows调试器运行,显示以下错误。
网上查询,大部分都说该错误出现在非本机部署时,只要将相应的dll文件拷贝至项目.exe文件所在目录下即可。有的.dll文件在bin目录下,有的在plugins目录下。而且说不出很精确的那几个文件,只要全复制就一定行。今天在网上看到这篇文章,才是解决问题的正确方法。即:用bin目录下的windeployqt.exe对项目.exe进行部署,过程中会自动解析所依赖的库文件,并将其拷贝至项目.exe所在目录下。参见https://www.jianshu.com/p/304c9e6de4d2
3.Qt与PyQt冲突
在eclipse环境下运行python程序,正常。但在vs2017中调用python程序,报错如上图(同问题2)。非常不解。
想到在anaconda中安装有PyQt5,猜想可能是两个Qt产生冲突了。尝试卸载PyQt5时,发现以下包都依赖PyQt5。即所有产生可视化效果的都与PyQt5相关,不敢卸载。
anaconda-navigator
jupyter
matplotlib
pyqt
qt
qtconsole
scikit-image
spyder
anaconda目录下,搜索plugins,位于C:\Program Files\Anaconda3\Library\plugins。
按照网上所说:
(1)参照