📚 Project Documentation: https://czyt1988.github.io/SARibbon/en
Detailed User Guide: SARibbon User Guide
| Windows (latest) | Linux Ubuntu (latest) | Mac (latest) | |
|---|---|---|---|
| Qt 5.15 LTS | |||
| Qt 6.8 LTS |
SARibbon is a Ribbon UI control library for Qt, designed to provide desktop applications with a modern interface similar to Microsoft Office applications.
- Large-scale software
- Industrial software
- Complex desktop applications
- Interface naming inspired by MFC Ribbon
- Visual style blends the best of Microsoft Office and WPS Office Ribbon interfaces
- Supports rapid theme customization via QSS (Qt Style Sheets)
- Includes encapsulated common functional widgets, such as color picker buttons and color panels
-
Supports minimized mode, where only tabs are shown (double-clicking a tab toggles minimization by default). Contextual tabs are also supported.

-
Supports Quick Access Bar (like Word's quick menu) and Right Button Group, with adaptive layout behavior in different modes.
-
Supports four types of Ribbon buttons: standard push button, delayed popup menu button, menu button, and action menu button. (The action menu button addresses one of the core challenges this Ribbon control aims to solve.)

See: Ribbon Button Layout Guide -
Offers six distinct layout styles — Loose 3-row, Loose 2-row, Compact 3-row, Compact 2-row, Loose Single-row, Compact Single-row — with Single-row mode ideal for space-constrained scenarios.
Layout styles:

Single-row layout:

See: SARibbon Layout Guide -
Fully customizable via QSS, with real-time theme switching support. Includes 6 built-in themes:
You can design any theme via QSS. See: Design Your Theme
-
Fully compatible with 4K displays and multi-monitor setups.
-
Supports Linux and macOS (UI not deeply optimized for these platforms).
-
Provides RTL mode with automatic system detection.
License: MIT (free to use, modify, and distribute)
Contributions welcome: feel free to submit Issues, PRs, or join discussions!
SARibbon provides amalgamated integration files (SARibbon.h and SARibbon.cpp) in the src/ directory — just include them in your project to get started.
To build as a dynamic library, see: SARibbon Build Instructions
Quick start guides:
We recommend starting with the example/MainWindowExample project to learn SARibbon usage. You can run it directly to explore all features interactively.
Project documentation is in the docs/en/ folder:
https://czyt1988.github.io/SARibbon/en
Doxygen-generated API documentation is deployed at: https://czyt1988.github.io/SARibbon/doxygen/index.html
SARibbon provides Python bindings for three frameworks, allowing you to use SARibbon in Python applications:
| Binding | Framework | Build Tool |
|---|---|---|
| PyQtSARibbon | PyQt5 | SIP |
| PyQtSARibbon6 | PyQt6 | SIP |
| PySideSARibbon | PySide6 | Shiboken6 |
Install via pip:
pip install PyQtSARibbon # PyQt5
pip install PyQtSARibbon6 # PyQt6
pip install PySideSARibbon # PySide6For building from source and detailed usage, see:
Python demo examples are in the pyexamples/ directory.
Screenshots of real applications built with SARibbon:
For actual Ribbon implementation code, see:
https://github.com/czyt1988/data-workbench/blob/master/src/APP/DAAppRibbonArea.cpp
Project documentation is built with MkDocs and deployed to GitHub Pages:
https://czyt1988.github.io/SARibbon/en
You can also generate documentation using Doxygen:
docs/doxygen-doc-file/Doxyfile-qch-en: generates.qchfiles for integration into Qt Creator as Qt Help documentation. (Note: the-envariant does not yet exist — useDoxyfile-qch-cnas a reference, or create the-enversion from it.)docs/doxygen-doc-file/Doxyfile-wiki-en: generates HTML documentation for browser viewing. (Note: the-envariant does not yet exist — useDoxyfile-wiki-cnas a reference, or create the-enversion from it.)












