Qt for Python & fbs露

fbs provides a powerful environment for packaging, creating installers, and signing your application. It also lets you manage updates to your application. Since fbs is based on PyInstaller, it supports Linux, macOS, and Windows.

For more details, see the fbs tutorial and the fbs manual.

Preparation露

Installing fbs (>= 0.7.6) is done via pip:

pip install fbs

If you鈥檙e using a virtual environment, remember to activate it before installing fbs.

After the installation, you can use the fbs executable.

Starting a new project露

fbs provides useful features for you to create a base project structure with the following command:

fbs startproject

This command prompts you to answer a few questions to configure the details of your project, like:

  • Application name

  • Author name

  • Qt bindings (PySide2 or PyQt5)

  • Bundle indentified (for macOS)

Afterwards, you have a src/ directory that contains the following structure:

鈹斺攢鈹� src
    鈹溾攢鈹� build
    鈹�   鈹斺攢鈹� settings
    鈹斺攢鈹� main
        鈹溾攢鈹� icons
        鈹�   鈹溾攢鈹� base
        鈹�   鈹溾攢鈹� linux
        鈹�   鈹斺攢鈹� mac
        鈹斺攢鈹� python

Inside the settings directory, there are a few JSON files that can be edited to include more information about your project.

The main file is in the python directory, and its default content is:

from fbs_runtime.application_context import ApplicationContext
from PySide2.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)

This example shows an empty QMainWindow. You can run it using the following command:

fbs run

Freezing the application露

Once you鈥檝e verified that the application is working properly, you can continue with the freezing process using the following command:

fbs freeze

After the process completes, you see a message stating the location of your executable. For example:

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

Now, you can try to run the application. The result is the same window as the one you saw with the fbs run command:

cd target/MyApp/
./MyApp

Note

This is the case for Linux. For other platforms like macOS, you need to enter the directory: target/MyApp.app/Contents/macOS. For Windows, you need to find the MyApp.exe executable.