Qt for Python & fbs#

fbs提供了强大的打包、创建安装程序和签名应用程序的环境。它还允许您管理应用程序的更新。由于fbs基于PyInstaller,因此它支持Linux、macOS和Windows。

有关更多详细信息,请参阅fbs教程fbs手册

准备工作#

通过pip安装fbs(>= 0.7.6)

pip install fbs

如果您正在使用虚拟环境,请记住在安装fbs之前激活它。

安装完成后,您可以使用fbs可执行文件。

开始新项目#

fbs提供了以下命令创建基础项目结构的实用功能

fbs startproject

此命令会提示您回答一些问题以配置项目的详细信息,例如

  • 应用程序名称

  • 作者名称

  • Qt绑定(PySide6)

  • 捆绑标识(针对macOS)

之后,您将拥有一个包含以下结构的src/目录

└── src
    ├── build
    │   └── settings
    └── main
        ├── icons
        │   ├── base
        │   ├── linux
        │   └── mac
        └── python

settings目录中,有几个JSON文件可以编辑以包含有关项目的更多信息。

默认的main文件位于python目录中,其默认内容是

from fbs_runtime.application_context import ApplicationContext
from PySide6.QtWidgets import QMainWindow

import sys

if __name__ == '__main__':
    appctxt = ApplicationContext()       # 1. Instantiate ApplicationContext
    window = QMainWindow()
    window.resize(250, 150)
    window.show()
    exit_code = appctxt.app.exec()      # 2. Invoke appctxt.app.exec()
    sys.exit(exit_code)

此示例显示了一个空的QMainWindow。您可以使用以下命令运行它

fbs run

冻结应用程序#

一旦您确认应用程序运行正常,您可以使用以下命令继续冻结过程

fbs freeze

过程完成后,您会看到一条消息,表明可执行文件的位置。例如

Done. You can now run `target/MyApp/MyApp`. If that doesn't work, see
https://build-system.fman.io/troubleshooting

现在,您可以尝试运行应用程序。结果是您使用fbs run命令看到的相同窗口

cd target/MyApp/
./MyApp

注意

这是针对Linux的情况。对于macOS等其他平台,您需要进入目录:target/MyApp.app/Contents/macOS。对于Windows,您需要找到MyApp.exe可执行文件。