Qt开发-使用Python进行桌面端开发

2021-11-10 11:17:49 浏览数 (1)

Qt下载

离线安装包网址:http://download.qt.io/archive/qt/

建议

  • Qt5 安装 5.14.2版本 这是Qt5最后一个可以离线安装的版本。
  • Qt6安装最新的

之前在线安装还能选择5.15版本,现在只能安装6.x版本了。

所以还是建议直接安装6.x版本。

版本区别

那么 Qt 5 的各个版本,该如何选择呢?

  • 如果你需要用到 QtWebkit,则只能用 Qt5.5及其以前的版本。
  • 如果你需要 PDF 的支持,建议升级至 5.15,因为新增模块 Qt PDF
  • 如果你需要 SSL 的支持,建议升级至 5.15,因为 5.13 开始已自支持 OpenSSL 1.1 及其以上。
  • 如果你常用 QImage,建议升级至 5.15,因为缩放和转换的许多方法都升级成多线程的。
  • 如果你常用 QtQuick,建议升级至 5.15,因为 5.14 开始 QtQuick 不再局限于 OpenGL 引擎加速。
  • 如果你常用 QNetworkAccessManager,建议升级至 5.15,因为开始支持超时设置 setTransferTimeout
  • 如果你发行在 Windows 平台,建议升级至 5.15,因为 5.14 开始对高DPI的设备有更好的支持。
  • 如果你需要开发 安卓APP,建议升级至 5.15,因为该版本完善了安卓开发文档。

开发工具推荐

Qt Creater

官方提供的工具功能比较强大,但是界面字体太小,代码提示及格式化功能不太强,但是对QML的支持比IDEA好。

IDEA/PyCharm

上面两个如果已经安装IDEA,就不再建议安装PyCharm,安装Python插件和QML Editor插件即可。

安装Python

这里我直接整理了64位和32位的3.8.1版本下载链接给大家:

  • 64位安装程序链接
  • 32位安装程序链接

官方下载地址:https://www.python.org/downloads/

请注意,一定要勾选 Add Python 3.8 to PATH,这样可以将 Python 命令工具所在目录添加到系统 Path 环境变量中,以后开发程序或者运行 Python 命令会非常方便。

其他我们保持默认即可,然后点Install Now即可完成安装。

设置镜像源

永久生效

进入当前用户目录中(Windows R 输入 . ),创建pip文件夹,pip文件夹中创建配置文件 pip.ini

复制以下内容

代码语言:javascript复制
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

临时生效

代码语言:javascript复制
pip install pyside2 -i https://pypi.douban.com/simple/

安装PySide2

这里使用了豆瓣的镜像

代码语言:javascript复制
pip install pyside2 -i https://pypi.douban.com/simple/

如果报错

No module named ‘PySide2’

说明没安装pyside2,如果安装后还报错,可能是电脑上有多个Python环境,在运行设置里修改使用的Python即可。

离线包下载

https://download.qt.io/official_releases/QtForPython/

离线安装

代码语言:javascript复制
pip install PySide6-6.0.1-6.0.1-cp36.cp37.cp38.cp39-none-win_amd64.whl

注意

PySide6只能在64位环境安装,要求Python是64位版本的。我就是安装32位的Python,一直安装不上PySide6。

创建项目

前两个都是用C 开发,第三个是用Python开发。

这里就选择使用Python开发,后面又有4个选项

  • 第一个是空项目,有基本的代码但是没有创建窗口。
  • 第二个能运行有窗口但是UI和逻辑是在一个文件中。
  • 第三个是分离的,UI使用的是XML的形式,可以图形化界面编辑。 Qt Widgets QSS
  • 第四个也是分离的,UI是用的QML和Flutter写UI的方式很像。 QML:这是 Qt 为 Qt Quick 打造的描述界面的新语言,然而就语法上,基本就是对 Javascript 做了扩展。几乎所有 Javascript 的语法都可以使用。

这里推荐选后两个即可。

两种方式对比:

发布程序

安装pyinstaller

代码语言:javascript复制
pip install pyinstaller

生成exe

方式1/2

打包命令

代码语言:javascript复制
pyinstaller mainwindow.py -Fw

这种方式打出的是单文件,所以后面的两种不能用这种方式,因为后两种需要复制界面文件。

方式3

打包命令:

代码语言:javascript复制
pyinstaller mainwindow.py --noconsole --hidden-import PySide2.QtXml

项目下就会生成dist目录,里面就有生成的exe。

但是运行报错,我们要把界面文件复制到生成的目标根目录,比如form.ui.

方式4

打包命令:

代码语言:javascript复制
pyinstaller main.py --noconsole --hidden-import PySide2.QtXml

同样我们也要把界面文件复制过来,如main.qml

C 构建与打包

如果用的C 方式,运行是直接生成exe的,但是无法运行

默认构建后,目录下的exe不能运行,会缺少依赖的DLL。

添加环境变量(根据自己Qt的安装路径修改)

D:ToolsQt6.2.1mingw81_64bin

进入exe的生成目录运行

代码语言:javascript复制
windeployqt.exe 程序名称.exe

这样所有依赖的DLL就会自动生成。

0 人点赞