How czyt1988/saribbon works
SARibbon is a Qt ribbon-interface library for desktop applications. An application creates a ribbon main window, organizes commands into categories and panels, and presents them as ribbon actions; users select or trigger those actions to invoke application behavior. The graph also captures documented customization, themes, galleries, color widgets, action search/management, and Python bindings. Core structure is supported by the README and sampled APIs/demos; unsampled subsystem links are omitted where implementation wiring cannot be confirmed.
Main entry points: SARibbonBar.cpp Ribbon Bar · SARibbonMainWindow.cpp Ribbon Main Window · SARibbonToolButton.cpp Ribbon Actions · SARibbonCategory.cpp Category Pages
Components 20
Ribbon Interface
- Ribbon Main Window
src/SARibbonBar/SARibbonMainWindow.cpp - Ribbon Bar
src/SARibbonBar/SARibbonBar.cpp - Category Pages
src/SARibbonBar/SARibbonCategory.cpp - Command Panels
src/SARibbonBar/SARibbonPanel.cpp - Ribbon Actions
src/SARibbonBar/SARibbonToolButton.cpp - Adaptive Layout
src/SARibbonBar/SARibbonBarLayout.cpp
Ribbon Features
- Ribbon Customization
src/SARibbonBar/SARibbonCustomizeDialog.cpp - Theme Manager
src/SARibbonBar/SARibbonThemeManager.cpp - Gallery Widget
src/SARibbonBar/SARibbonGallery.cpp - Color Widgets
src/SARibbonBar/colorWidgets/SAColorMenu.cpp - Action Manager
src/SARibbonBar/SARibbonActionsManager.cpp - Quick Access Bar
src/SARibbonBar/SARibbonQuickAccessBar.cpp - Frameless Support
src/SARibbonBar/SAFramelessHelper.cpp
Application Integration
- Element Factory
src/SARibbonBar/SARibbonElementManager.cpp - Qt Framework
Python Bindings
- PyQt5 Binding
pyproject.toml - PyQt6 Binding
pyqt6/pyproject.toml - PySide6 Binding
pyside6/PySideSARibbon/__init__.py
Other components
- Application Developer
- Desktop User
Connections 22
- Application Developer → Ribbon Main Window: creates
- Ribbon Main Window → Ribbon Bar: provides
- Application Developer → Ribbon Bar: configures
- Ribbon Bar → Category Pages: adds pages
- Category Pages → Command Panels: adds panels
- Command Panels → Ribbon Actions: presents commands
- Desktop User → Ribbon Actions: triggers
- Ribbon Actions → Application Developer: signals command
- Ribbon Bar → Adaptive Layout: lays out
- Application Developer → Ribbon Customization: customizes
- Application Developer → Theme Manager: selects theme
- Application Developer → Gallery Widget: adds gallery
- Application Developer → Color Widgets: adds color controls
- Ribbon Bar → Action Manager: registers actions
- Application Developer → Quick Access Bar: adds shortcuts
- Ribbon Main Window → Frameless Support: uses when enabled
- Application Developer → Element Factory: sets factory
- Element Factory → Ribbon Bar: creates elements
- Ribbon Main Window → Qt Framework: uses widgets
- PyQt5 Binding → Ribbon Bar: exposes API
- PyQt6 Binding → Ribbon Bar: exposes API
- PySide6 Binding → Ribbon Bar: exposes API