0. 前言
到现在还是搞不懂Qt,Qt4,Qt5,Qt Designer,Qt Creator,Qt Widgets,Qt Quick,PyQt5,PySide2,PyUic,PyRcc这些乱七八糟的名词的关系,真是好复杂的赶脚QAQ
1. 安装Python
下载地址: https://www.python.org/downloads/
标有[bugfix]的版本不建议下载,建议下载标有[security]的版本
下面这里是下载的地方,点想下载的版本后面的"Download"即可
有些下载地址点进去显示"No installer",注意看下面描述,会有说明应该下载具体哪个版本。
比如我点击下载Python 3.9.15,进去提示Python3.9.13是Python 3.9的最后一个完整错误修复版本,所以Python 3.9建议下载Python3.9.13。
我选择Python3.9.13下载
进去直接拉到最底下,Files一栏,根据自己电脑系统选择版本,我就选"Windows installer (64-bit)"
下载完是 python-3.9.13-amd64.exe
这样的安装包,和普通应用一样安装即可。
(我的安装路劲选择在E:\Python3\
)
安装过程若是没有勾选配置环境变量,需要自己配置环境变量,这里不再赘述。
(我的环境变量添加了2个:E:\Python3
和 E:\Python3\Scripts
)
2. 搭建虚拟环境
参考来源: https://zhuanlan.zhihu.com/p/484999552
[备注:我的是win10环境下,上述参考来源有详细介绍,我这简写我自己用的步骤]
第一步:打开cmd安装 virtualenv(前提Python环境变量配置好)
pip install virtualenv
执行超时可以修改镜像源,使用清华大学开源软件镜像站进行安装:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
第二步:新建一个文件夹用于创建虚拟环境
//我新建的文件夹
E:\Python_Virtual_Env
第三步:打开cmd,切换路径到刚才新建的文件夹中,创建虚拟环境,命令如下
E:
cd E:\Python_Virtual_Env
virtualenv env
在E:\Python_Virtual_Env
目录下创建一个名为 env
的虚拟环境
第四步:激活虚拟环境
//激活脚本
E:\Python_Virtual_Env\env\Scripts\activate.bat
//退出脚本
E:\Python_Virtual_Env\env\Scripts\deactivate.bat
3. 虚拟环境下安装Python工具包
- 打开cmd切换到虚拟环境目录:
E:\Python_Virtual_Env\env\Scripts
- 激活虚拟环境:直接执行activate
E:\Python_Virtual_Env\env\Scripts>activate
- pip安装所需工具包:以下命令都在
(env) E:\Python_Virtual_Env\env\Scripts>
下执行
安装PySide2
pip install shiboken2
pip install PySide2
上面这个安装会超时,这里改用清华大学开源软件镜像站进行安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple shiboken2
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple PySide2
也可以下载whl安装包文件,然后pip离线安装工具包
PySide2工具包whl文件下载地址:https://pypi.org/project/PySide2/#files
把安装包放入E:\Python_Virtual_Env\env\Scripts
下,直接pip命令安装即可:
pip install PySide2-5.15.2.1-5.15.2-cp35.cp36.cp37.cp38.cp39.cp310-none-win_amd64.whl
安装pyuic5,pyrcc5
集成在PyQt5-tools里面
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyqt5-tools
检查安装完成
安装成功后, 在Python虚拟环境Scripts
文件夹下会多出许多可执行文件
4. Pycharm安装与配置
- 下载地址:https://www.jetbrains.com/pycharm/download/#section=windows
- 安装过程:略
- 配置虚拟环境:
-
打开/或新建一个Project,
-
然后依次点击
Flie
>Settings
>Project: ***
>Python Interpreter
>
Add Interpreter
>Add Local Interpreter
(***是Project的名字)
-
选择第一个
Virtualenv Environment
,右边选择Existing
,然后把上面新建的虚拟环境路径里的python.exe添加上,就可以了。
-
5. Qt安装和配置
-
安装
Qt Creator
安装过程略,我安装的是Qt 5.12.10
版本 -
Qt 配置Python虚拟环境
-
打开Qt Creator,依次点击顶部菜单栏的
帮助 > 关于插件
,在弹出的窗口中找到Other Languages
选项,勾选LanguageClient
(若已是勾选状态就不用管)。
-
依次点击顶部菜单栏的
工具> 选项
,弹出窗口有2个地方需要设置,第一个是Language Client
选项,需要新建一个配置,具体步骤如下图
-
第二个要修改的是
Python
选项,也是需要新建一个配置,具体步骤如下图
-
验证配置:
新建一个Project,工程类型选择如下图,后面选项自己看着选/填
新建完成后,直接点击左下角的绿色三角形
运行
图标,看到右边执行程序用的是我们虚拟环境中的Python.exe,说明配置成功了。
-
6. Visual Studio Code环境配置
- 官网下载:https://code.visualstudio.com/
- 安装:略
- 配置Python虚拟环境:
- 安装Python插件:插件那里搜
Python
直接安装即可 - 打开/新建一个工作文件夹
- 打开
设置
,选择需要配置的工作文件夹(我这里是pyTest
),左侧菜单栏选扩展
>Python
- 把Python虚拟环境的路径加进去即可。
- 可以看到在
settings.json
多了2行(原来就有则会改变)
- 随手写一个 hello world 测试下,点击右上角三角形运行,可以看到终端显示我们用的确实是虚拟环境下执行的。
- import一个我们在虚拟环境安装的工具包的类,可以看到代码有颜色,并且没有波浪线错误提示,按F12转到定义,能打开虚拟环境中的py文件,说明工作环境是没问题了。
- 安装Python插件:插件那里搜
- 配置Qt for Python
- 安装:插件栏搜
Qt for Python
直接安装即可
- 我们测试一下,工作文件夹就3个文件,
main.py
,main.qml
,qml.qrc
(main.py
名字不能改)
各个文件内容如下:
main.py
- 安装:插件栏搜
# main.py
from PySide2.QtCore import QObject
from PySide2.QtGui import QGuiApplication
from PySide2.QtQml import QQmlApplicationEngine
# import os
import sys
class MyUiSys(QObject):
def __init__(self, file):
super().__init__()
self.Engine = QQmlApplicationEngine()
self.Engine.load(file)
if __name__ == "__main__":
app = QGuiApplication(sys.argv)
UI = MyUiSys("main.qml")
if not UI.Engine.rootObjects():
sys.exit(-1)
sys.exit(app.exec_())
main.qml
// main.qml
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
width: 640
height: 480
visible: true
title: qsTr("Hello World")
}
qml.qrc
<RCC>
<qresource prefix="/">
<file>main.qml</file>
</qresource>
</RCC>
运行main.py
成功弹出Qt窗口
当然,我们直接cmd命令行执行py程序也可以启动UI窗口,执行指令记录如下:
C:\Users\Admin\Desktop\pyTest>E:\Python_Virtual_Env\env\Scripts\activate.bat
(env) C:\Users\Admin\Desktop\pyTest>python main.py
7. 关于.qrc文件
我们工程配置好图片资源后,会把图片资源打包成xx.py
的二进制文件,操作是cmd下执行以下命令(下面的xx和xx_rc名字可以自己任意取,只要对得上就行)
pyrcc5 xx.qrc -o xx_rc.py
然后在工程的main.py
里加上一句
import xx_rc
就可以在工程中用qrc:/
开头来调用xx.py
中的图片资源
source: "qrc:/Image/Button.png"
但是我们是在Python虚拟环境中创建和编译的工程,所以打包指令也得用虚拟环境下的pyrcc5.exe
才行
我写了个简单的bat脚本,来一键更新qrc资源,只要修改前面几个设置项,就可以在你电脑上运行啦
:: Update.bat
:: encode by: ANSI (GBK GB2312)
@echo off
:: --------------------------设置源文件和目标文件
set "orgFileName=qml.qrc"
set "dstFileName=qml.py"
:: --------------------------设置是否开启Python虚拟环境
set "Python_VirtualEnv_ON=1"
set "python_env_dir=E:\Python_Virtual_Env\env\Scripts"
:: --------------------------设置使用的Python工具 (pyrcc5 或 pyside2-rcc)
set "python_tool=pyrcc5"
:: --------------------------开始运行
echo 当前目录:%~dp0
echo.
if %Python_VirtualEnv_ON%==1 (
if EXIST %python_env_dir%\activate.bat (
call %python_env_dir%\activate.bat
echo Python虚拟环境已打开
echo.
) ELSE (
echo 错误: Python虚拟环境打开失败, 找不到activate.bat
echo.
pause
exit
)
)
IF EXIST %orgFileName% (
echo 检测到 %orgFileName%
echo.
) ELSE (
echo 错误: 缺少%orgFileName%源文件
echo.
pause
exit
)
echo 尝试删除旧版 %dstFileName%
echo.
IF EXIST %dstFileName% (
copy %dstFileName% __backup__.py | find ""
echo 已删除旧版本 %dstFileName%
echo.
) ELSE (
echo 没有旧版本%dstFileName%文件
echo.
)
%python_tool% %orgFileName% -o %dstFileName%
IF EXIST %dstFileName% (
echo %dstFileName% 更新成功
echo.
IF EXIST __backup__.py (
del __backup__.py
)
) ELSE (
echo %dstFileName% 创建失败, 更新失败, 请检查配置
echo.
IF EXIST __backup__.py (
copy __backup__.py %dstFileName% | find ""
del __backup__.py
echo 已还原旧版本
echo.
)
)
if %Python_VirtualEnv_ON%==1 (
if EXIST %python_env_dir%\activate.bat (
call %python_env_dir%\deactivate.bat
echo Python虚拟环境已关闭
echo.
) ELSE (
echo 错误: Python虚拟环境关闭失败, 找不到activate.bat
echo.
pause
exit
)
)
pause
8. 结束
上述讲解若有不对的地方,欢迎指正,毕竟我也是不是很懂