Python 的 Qt 和 fbs

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

更多详情,请参阅fbs教程fbs手册

准备

安装 fbs (>= 0.7.6) 是通过 pip 完成的:

pip install fbs

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

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

开始一个新项目

fbs 提供了有用的功能,让你可以通过以下命令创建一个基础项目结构:

fbs startproject

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

  • 应用程序名称

  • 作者姓名

  • Qt 绑定 (PySide6)

  • 已识别的捆绑包(适用于 macOS)

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

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

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

主文件位于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可执行文件。