商业用途#

Qt for Python遵循Qt相同的许可协议,这意味着有两种发行版,社区版(LGPLv3/GPLv3)和商业版。更多信息请参考Qt 许可协议页面

简要说明,您可以通过以下任一许可证获得商业Qt for Python软件包:

  1. Qt for Application Development Professional (ADP)

  2. Qt for Application Development Enterprise (ADE)

  3. Qt for Device Creation Professional (DCP)

  4. Qt for Device Creation Enterprise (DCE)

唯一区别是ADP许可证不包含额外的 Qt OPC UAQt MQTTQt CoAP模块,这些模块以特殊的Python wheel形式发行。

Qt for Python采用与Qt相同的方法,这意味着商业用户将能够获得针对任何给定版本的我们商业软件包,或者特殊的商业长期支持(LTS)版本。

商业用户不应通过pip install pyside6安装社区版发行版,以免出现许可问题,而应参考从Qt 账户、Qt 安装包或其他通过qtpip工具获取的软件包。

安装#

我们理解商业车轮的安装将取决于您的用例。为此,我们目前提供三种方式来安装商业Qt for Python版本:命令行工具、使用维护工具或手动下载软件包。

qtpip - 商业车轮安装器#

qtpip是Python包安装程序)pip的包装器,该安装程序提供了与商业许可证检测的集成。

为设置此工具,我们建议为您的项目创建一个虚拟环境,然后像其他模块一样安装此工具

# Create and activate a virtual environment first
# then install 'qtpip'
pip install qtpip

# Now install pyside6 (or any of the Qt for Python packages)
qtpip install pyside6

除了install命令外,您还可以像pip一样进行uninstall,但也可以执行一个完全卸载(fulluninstall),以完全删除所有Qt for Python软件包。您可以通过执行qtpip -h获得更多信息

$ qtpip -h
Usage: qtpip [options] install <package> fulluninstall <PySide6/shiboken6/all>
Qt wrapper around pip.
These arguments override pip's. For more, refer to pip --help

Options:
  -f, --force                  Force installation if OSS wheels were already
                               installed.
  --no-input                   Disable prompting for input.
  --no-cache-dir               Disable the cache.
  --disable-pip-version-check  Don't periodically check PyPI to determine
                               whether a new version of pip is available for
                               download.
  --no-color                   Suppress colored output.
  --user                       Install to the Python user install directory for
                               your platform.
  --force-reinstall            Reinstall all packages even if they are already
                               up-to-date.
  -h, --help                   Displays help on commandline options.
  --help-all                   Displays help, including generic Qt options.
  -v, --version                Displays version information.

Arguments:
  install                      Installs a package, this can be any of PySide6,
                               PySide6-Essentials, PySide6-Addons, shiboken6 or
                               shiboken6-generator for the respective commercial
                               wheel, or any other wheel from PyPi.
  fulluninstall                Fully uninstalls all packages related to
                               PySide6, shiboken6, or both.

注意

qtpip的发布周期将独立于Qt for Python的发布周期。

维护工具#

作为商业用户,您可以从Qt Maintenance Tool下载商业车轮套件。适用于Qt/C++的同一版本也适用于Python绑定。

车轮将下载但不会安装,主要是因为它们应该安装在虚拟环境中而不是默认解释器中。车轮旁边将提供requirements.txt文件,以简化安装步骤。

pip install -r /path/to/Qt/QtForPython/6.6.0/requirements.txt

除了车轮外,您还将能够下载源代码。

注意

以这种方式安装的车轮可以被 `*Qt Creator*`_ 检测到,它将为您当前的 Python 解释器提供安装它们的选项。

使用 account.qt.io#

转到您的 Qt 账户 页面,并在侧边菜单中选择 下载 选项。您将在 产品 部分找到一个选择 Qt for Python 的选项

Products screenshot

有两个选项列出了不同的包集

  • Qt for Python 商业车轮,这些是非 LTS 版本,在商业许可下发布,包含仅商业的功能和工具。此外,您还可以在这里找到 Qt for 自动化(M2M 协议) 包。

  • Qt for Python (商业 LTS),在这里您可以找到 5.15.x LTS 和 6.2.x LTS 版本。

一旦您选择其中任何一个版本,您将能够选择要下载的 Qt for Python 商业车轮Qt for Python (商业 LTS) 包的版本

Commercial versions screenshot

版本

LTS versions screenshot

对于任何版本,您都可以根据您的操作系统(macOS、Windows 或 Linux)下载许多包。要了解更多关于包内容的信息,请查看 包详情 页。

下载包后,建议您创建一个 Python 虚拟环境来安装它们 - 检查 ref:quick-start 页面了解如何操作。在终端中激活环境后,运行以下命令(对于 macOS/Linux)

pip install *.whl

来安装所有内容,并将 pip 留下来解决包之间的依赖关系,或者对于 Windows 可以手工选择合适的组合

pip install shiboken6-... PySide6_Essentials-... PySide6-Addons... ...

或者对于 Windows,您可以使用以下命令,它包括版本,并假定您正在车轮所在的相同目录中运行

pip install --no-index --find-links=. PySide6==6.4.0.commercial

注意

包详情 页所述,包的依赖关系需要您首先安装 shiboken6 包,然后如果您对绑定生成感兴趣,可以安装 shiboken6-generator;或者如果您想使用基本模块,可以安装 PySide6_Essentials。在基本模块之后,根据需要可以可选地安装 PySide6_AddonsPySide6_M2M

Qt Creator 集成#

Qt Creator 提供了从主向导创建新的 Qt for Python 项目的选项。

为了执行项目,请确保选择了正确的 Python 解释器,这样 Qt Creator 才能使用您刚才安装的商业模块。转到 编辑 -> 首选项,您可以在那里找到 Python 选项,它会显示以下内容

Qt Creator Python options

您可以添加、删除和修改环境。要包含新的环境,请确保从您的环境中选择主 Python 可执行文件。这可以在 macOS 和 Linux 上的 path_to_your_env/bin/python 找到,或者在 Windows 上的 path_to_your_env\python.exe

作为替代,您可以直接从虚拟环境中启动 Qt Creator,它将自动检测您的安装。

从其他版本迁移#

如果您有一个使用开源分发版的虚拟环境,您需要先使用pip uninstall <package>命令卸除这些包。

要检查是否已安装包,请运行pip list并查找shibokenPySide包。

我们始终推荐创建一个新的虚拟环境,因此如果您以前有安装,且有疑问的话,最好只删除旧的虚拟环境。虚拟环境的性质是设计上易变的。

Python 工作流#

Qt 框架是一个 C++ 框架,我们通过 Shiboken(绑定生成器)将其暴露给 Python,以此创建 PySide Python 模块。

Qt for Python 试图在 C++ 和 Python 项目的操作之间找到一个平衡点,因此需要做出许多决定,其中之一就是分割包的分发需要遵循相同的 Python 工作流,这意味着创建 Python 包(wheels)并通过人们可以使用pip工具安装它们的方式进行分发。

PyPI 是分发开源包的主要平台,但需要商业包时情况就不同了。在我们考虑的所有选择中,我们最初决定在Qt Account平台上提供包(wheels),让人们可以按需下载和安装,但我们正在调查改进这一流程的简单方法。

关于在Qt 维护工具中包含 Qt for Python 也有一些讨论,但这会引入一个新的复杂级别。理由是,此工具将要求人们在不同的位置选择或创建一个 Python 虚拟环境,以便进行安装。此外,Python 工作流将虚拟环境视为非常不稳定的。这意味着它们经常被删除和创建,因此重新安装或更新 Qt for Python 包可能很常见。