结合自己的使用过程,近期整理了Win10系统下python + PyQT5 + PyQt5-tools(or QT) + pycharm环境搭建过程,Share在这里共勉共进。
解析
Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
下载地址:https://www.python.org/downloads/
PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。Qt库是目前最强大的库之一。PyQt是由Phil Thompson 开发。截至目前2020年,PyQt最新版本是第五版,即PyQT5。
下载地址:https://www.riverbankcomputing.com/software/pyqt/download5/
PyQT5-tools是基于PyQt5的工具集,其包含了Qt-Designer,QML插件等,一般安装该工具集是为了使用Qt-Designer。
下载地址:https://pypi.org/project/pyqt5-tools/#files
Qt 是一个跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。
下载地址:http://download.qt.io/archive/qt/
以下是基于QT的几个延伸补充:
Qt SDK:包含了 Qt 库以及 Qt 的开发工具(IDE、i18n 等工具),是一套完整的开发环境。当然,这个的体积也是最大的(Windows 平台大约 1.7G,其它平台大约 780M)。如果仅仅为开发 Qt,建议选择这一项下载安装。安装方法很简单,同普通程序没有什么区别。所需注意的是,安装过程中可能能够提供选择是否安装源代码,是否安装 mingw 编译器(Windows),这个就按照需要进行选择即可。
Qt Library:仅包含 Qt 库。如果您已经安装了 Qt 开发环境,为了升级一下 SDK 中提供的 Qt 库版本,就可以安装这一个。安装过之后,应该需要在 IDE 中配置安装路径,以便找到最新版本的 Qt(如果不是覆盖安装的话)。
Qt Creator:基于 Qt 构建的一个轻量级 IDE。包括项目生成向导、高级的 C++ 代码编辑器、浏览文件及类的工具、集成了 Qt Designer、Qt Assistant、Qt Linguist、图形化的 GDB 调试前端、 qmake 构建工具等,还是比较好用的,建议使用 Qt Creator 进行开发。当然,如果你已经习惯了 VS 这样的工具,可以在页面最下方找到相应的 Addin。Qt Creator 包括项目生成向导、高级的 C++ 代码编辑器、浏览文件及类的工具、集成了 Qt Designer、Qt Assistant、Qt Linguist、图形化的 GDB 调试前端,集成 qmake 构建工具等。
Qt Designer:是Qt程序UI界面的实现工具。其设计符合MVC的架构,实现视图和逻辑的分离,从而提升开发小绿。其操作方式十分灵活,可通过拖拽的方式放置控件并随时查看控件效果,所作即所见,所见即所得。其生成的.ui文件(实质上是XML格式的文件),可以通过pyuic5工具(包含在PyQt5中)转换成.py文件,作为python自定义UI库被调用,当然也是可以被python程序直接调用。
PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。
下载地址:https://www.jetbrains.com/pycharm/download/
sip是RiverBank(也就是PyQt的开发商)开发的,用于PyQt为C和C ++库创建Python绑定的混合编程解决方案。由于Qt框架的复杂性,PyQt并没有使用Cython、SWIG的混合编程方案,而是自己单独做了一套框架。sip包括一个sip工具、SDK和Python Module。
下载地址:https://pypi.org/project/sip/#files
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。后面Python和QT的相关工具都采用直接的PIP安装方式。如果您使用的是从python.org下载的Python 2> = 2.7.9或Python 3> = 3.4,或者您正在使用virtualenv或pyvenv创建的虚拟环境中工作,则已经安装了对应的pip,当然你也可以下载后手动安装。例如:我的Python3.8, 其默认已经安装了pip3。
下载地址:https://pypi.org/project/pip/#files
安装
关于Python和Pycharm的安装,这里就不打算介绍了,按照上面的url下载后,在win10上一步步正常按照即可。
注意以下几点:
1)下载Python时,选择对应的操作系统,体系架构和适用平台,例如我的电脑就是Windows x86-64、桌面执行使用,故选择下载Windows x86-64 executable installer,如下图:
2)Python安装时可勾选添加到环境变量PATH,如忘记,可在安装完成后手动添加,如下图:
3)选择对应的平台的Pycharm,下载社区版后(当然你也可付费选择专业版),正常按照即可。
4)Pycharm安装时可勾选添加到环境变量PATH,如忘记,可在安装完成后手动添加,如下图:
OK, 重头戏来了,下面重点介绍如何使用pip工具PyQt5 和 PyQt5-tools(or QT)的安装,当然还包括SIP的安装,并解决安装过程中遇到的问题
pip install sip
pip install PyQt5
pip install PyQt5-tools
就留给大家自己做吧,其实Windows下QT的安装比较简单,下载安装即可(只需要注意在安装中选中相关组件)
1)pip不匹配,安装失败
当前PC是pip/pip2, 不是最新版的pip3或者pip没有指向pip3,安装pip3即可,注意由于PyQt5仅支持python3,不支持python2,所以必须安装python3和pip3.
2)连接超时,无法下载并完成安装
若是自身网速原因,则延长访问超时时间:
pip --default-timeout=100 install PyQt5(第三方库)
若是服务器响应或者VPN问题,则更换国内下载源:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple PyQt5(第三方库)
几个国内的镜像源网站供参考:
https://pypi.douban.com/simple (豆瓣)
https://pypi.tuna.tsinghua.edu.cn/simple (清华大学)
https://mirrors.ustc.edu.cn/pypi/web/simple (中国科技大学)
https://mirrors.aliyun.com/pypi/simple/ (阿里)
3)PermissionError: [WinError 5]
需添加--user参数,即安装到python用户目录
pip install --user PyQt5(第三方库)
4)PermissionError: [Errno 13] Permission denied:‘C:\Users…\AppData\Roaming\Python\Python37\site-packages\PyQt5\Qt\bin\d3dcompiler_47.dll’
因为后台有python服务在运行,所以安装失败,只需关闭与python有关的服务或者直接关机重启后重新安装即可(可能需要多次关机重启)
配置
这里主要是进行Pycharm的配置,实现以下三个目的:
1)使用Qt-Designer进行GUI设计
2)使用外部工具PyUIC转换ui文件成对应python文件
3)编译和运行python程序
打开Pycharm应用程序后,使用Ctrl+Alt+s组合键打开配置窗口,开始以下配置
1)配置GUI设计工具
在External Tools窗口添加Qt-Designer,并进行配置,如下图
注意:Program栏Qt-Desinger的路径,Working directory栏填写变量$FileDir$即可。
2)配置PyUIC转换工具
注意:Program栏Python解释器的路径,Arguments栏填写如下参数:
-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
Working directory栏填写变量$FileDir$即可。
3)配置Python程序的解释器
应用
完成以上安装和配置,可以开始第一个基于PyQT的GUI和Python应用项目了,基本上按照以下步骤:
1)在Pycharm中打开QT_Designer进行GUI设计,生成.ui文件
2)在Pycharm中打开 PyUIC 将.ui 文件转换成.py文件
3)编写Python程序,import前面生成的.py 文件,再在其中调用
4)拓展Python程序,定制用户所需功能
我就举例实现在上图中”点击OK按钮,显示hello world“的功能,操作以下三个步骤:
###将转换后的py文件中的
MainWindow.setCentralWidget(self.centralwidget)
MainWindow.setMenuBar(self.menubar)
MainWindow.setStatusBar(self.statusbar)
这3行语句注释掉,然后就可以在这个界面的基础上愉快的实现自己的功能,不然后面整体编译时不通过。原因时什么呢?请自查......
###修改主程序,如下图
###新添加click.py文件,实现点击显示的功能,作为主程序调用库
运行主程序,点击ok按钮,显示hello world, 最终实现效果图:
Anyway,这部分就留给读者,根据你的需求发挥你的想象,在自己的Python应用程序中遨游吧!
参考: