【翻译】Qt for Python(PySide6)官方文档:(2)正式开始Qt for Python之旅

17 篇文章 27 订阅

本章主要讲解如何通过代码命令行方式创建Python for Qt工程项目,如果你只是要通过pip安装PySide6,你来~

pip install pyside6

更多详情,请参阅我们的快速入门指南。此外,您可以查看与项目相关的常见问题。

一般配置要求

译者注:编译PySide主要用到一些第三方库,如libclang,Python, CMake等,这些都可以从Qt的开发工具中下载到:

  • Python: 建议3.6+
  • Qt: 建议 6.0+ 版本
  • libclang: libclang 库,6.0+ 建议使用10以上版本.预置安装版本在这里下载
  • CMake: 需要 3.1+ 版本

平台指南

不同平台的使用指南参考如下:

  • Windows
  • macOS
  • Linux
  • 移动平台(iOS/Android)(不支持)
  • 嵌入式平台(没有官方支持)

注意
大多数基于 linux 的嵌入式操作系统都为 PySide 提供了正式的包管理器(例如 树莓派以及archlinuxarm)。
archlinuxarm packages page

一个常见的创建命令大抵是这样的:

python setup.py install --qmake=/path/to/qmake \
                        --ignore-git \
                        --debug \
                        --build-tests \
                        --parallel=8 \
                        --make-spec=ninja \
                        --verbose-build \
                        --module-subset=Core,Gui,Widgets

这将使用debug symbols构建和安装工程项目,包括测试、使用ninjia(代替 make)并且只考虑 QtCoreQtGUIQtWidgets 的模块子集。

其他需要考虑的重要项:

  • --cmake,指定 cmake 二进制文件的路径;
  • --reuse-build,只重建修改过的文件;
  • --openssl=/path/to/openssl/bin,为 OpenSSL 分配一个不同的路径;
  • --standalone,复制 Qt 库到最终生成包,使其在其他设备上可运行;
  • -- doc-build-online,使用在线模板构建文档。

测试安装

安装成功后,即可执行任何可用的示例。

python examples/widgets/widgets/tetrix.py

使用 -- build-tests 选项将使我们能够在项目中运行所有的自动测试:

python testrunner.py test > testlog.txt

注意:
在Windows上,切记将 qmake 加入path 环境变量(例如:PATH=E:\Path\to\Qt\6.0.0\msvc2019_64\bin;%PATH%)

我们还运行指定文件的测试(例如 qpainter _ test.py),命令如下 :

ctest -R qpainter_test --verbose

创建文档

自5.15版本之后,有两个参数选项可以创建文档。

1. 创建rst-only文档

解析 Qt 头文件以生成 PySide API 文档的过程可能需要几分钟,这意味着修改 rst 文件的特定部分可能会是一项艰巨的任务。
为此,您可以在虚拟环境中安装 sphinx,并执行以下命令:

python setup.py build_rst_docs

生成 /html 目录如下

html
└── pyside6
    ├── index.html
    ├── ...
    └── shiboken6
        ├── index.html
        └── ...

可以打开浏览器上的主页 html/pyside6/index. html,以检查生成的文件。
在对文档进行常规化更新、添加教程、修改构建指令时将非常有用。

2. 构建文档(rst + API)

文档目前使用 qdoc 生成,以获取 API 信息,还有本地 Python 相关说明的 sphinx。
该系统需要 libxml2和 libxslt,在 Python 环境中也需要安装 sphinx 和 graphviz,然后才能运行安装过程:

pip install graphviz sphinx

在安装 graphviz之后,dot 命令需要在 PATH 环境命令中,否则,进程将失败。全局安装 graphviz 也是一种选择。
由于该进程依赖于 Qt 安装,因此使用 qmake 时需要指定 qtbase 目录的位置:

make apidoc

注意:
apidoc make target 默认情况下以 QCH (Qt Creator 帮助)格式构建脱机文档。可以使用 -- doc-build-online configure 配置选项切换到生成用于联机使用。

最后,您将得到一个包含所有生成文档的html 目录。离线帮助文件 PySide.qchShiboken.qch 可以移动到您选择的任何目录。你可以在 build 目录中找到 Shiboken.qch*_build\*_release\shiboken6\doc\html

查看脱机文件

离线文档(QCH)可以使用 Qt Creator IDE 或 Qt 助手来查看,这是一个用于查看 QCH 文件的绿色软件。

要使用 Qt Creator 查看 QCH,请遵循在使用 Qt Creator 帮助模式中概述的指令。如果你选择使用 Qt 助手,在启动 Qt 助手之前使用以下命令注册 QCH 文件:

assistant -register PySide.qch

注意
Qt Assistant 使用支持 CSS 样式子集的 QTextBrowser 后端来呈现 QCH 内容,然而,Qt Creator 提供了一个基于 litehtml 的替代后端,它提供了更好的浏览体验。目前,这不是默认的后端,所以你必须在常规选项卡下面在 Qt Creator > Tools > Options > Help 中显式选择 litehtml 后端。
可以在 pyside-setup 存储库中的 tools/目录下找到一组工具。

使用内部工具

在 pyside-setup 库中的 tools/目录下有一系列工具。

checklibs.py: Script to analyze dynamic library dependencies of Mach-O binaries. To use this utility, just run:

  • checklibs.py:用于分析 Mach-O 二进制文件的动态库依赖关系的脚本。脚本如下:
python checklibs.py /path/to/some.app/Contents/MacOS/Some

这个脚本是从这个库中获取的。

create_changelog.py: 用于创建在 dist/目录中可以找到的 CHANGELOG 的脚本。用法如下:

python create_changelog.py -r 6.0.1 -v v6.0.0..6.0 -t bug-fix

debug_windows.py:这个脚本可以用来查明为什么 PySide 模块无法加载各种 DLL 错误,如 DLL 中丢失 DLL 或缺少符号。

您可以将其视为 ldd / LD_DEBUG 的 Windows 版本。

Underneath it uses the cdb.exe command line debugger, and the gflags.exe tool, both installed with the latest Windows Kit.

在底部,它使用 cdb.exe 命令行调试器和 gflags.exe 工具,这两个工具都安装了最新的 Windows Kit。

The aim is to help developers debug issues that they may encounter using the PySide imports on Windows. The user should then provide the generated log file.

其目的是帮助开发人员在 Windows 上使用 PySide 导入时调试可能遇到的问题。然后用户应该提供生成的日志文件。

Incidentally it can also be used for any Windows executables, not just Python. To use it just run:

顺便说一句,它也可以用于任何 Windows 可执行文件,而不仅仅是 Python:

python debug_windows.py

missing_bindings.py: 这个脚本用于比较 PySide 和 PyQt 在可用模块和类方面的状态。这些内容显示在我们的 wiki 页面上,可以如下使用:

python missing_bindings.py --qt-version 6.0.1 -w all

注意:
该脚本依赖于 BeautifulSoup 来解析内容并生成缺少绑定的列表。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值