82. Customizing the GUI

PyAero’s interface is intentionally assembled from small, structured building blocks rather than hard-coded menu and toolbar definitions scattered throughout the codebase.

83. Main Customization Points

The key files are:

  • src/ActionRegistry.py

  • resources/Menus/menu_layout.json

  • resources/Menus/toolbar_layout.json

  • resources/Shortcuts/shortcuts.json

84. Action Registry

The action registry defines:

  • action ids

  • labels

  • tooltips

  • icons

  • default shortcuts

  • callback targets

When you add a new command, the usual flow is:

  1. define the action in src/ActionRegistry.py

  2. place the action id in the menu or toolbar layout

  3. optionally document or override its shortcut

85. Why This Matters

This structure keeps the interface maintainable:

  • the same action can appear in both menu and toolbar without duplicate logic

  • shortcut editing works against one shared source of truth

  • UI polish can evolve without rewriting every callback path

86. Workflow Pages

The workflow sidebar itself is built from page-builder modules such as:

  • src/ToolboxPagesAirfoil.py

  • src/ToolboxPagesMeshing.py

  • src/ToolboxPagesAnalysis.py

  • src/ToolboxPagesCfd.py

This makes it practical to evolve one page at a time without destabilizing the whole interface.