Skip to content
 
 

Latest commit

 

History

990 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SARibbon Introduction

中文文档点击这里

📚 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 cmake-win-qt5.15 CMake-Linux-Qt5.15 cmake-mac-qt5.15
Qt 6.8 LTS cmake-win-qt6.8 CMake-Linux-Qt6.8 cmake-mac-qt6.8

Project Overview

SARibbon is a Ribbon UI control library for Qt, designed to provide desktop applications with a modern interface similar to Microsoft Office applications.

Use Cases

  • Large-scale software
  • Industrial software
  • Complex desktop applications

Design Philosophy

  • 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

Features

Ribbon Layout and Display

Overview

  • Supports minimized mode, where only tabs are shown (double-clicking a tab toggles minimization by default). Contextual tabs are also supported.
    Minimized Mode

  • 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.)
    Ribbon Buttons
    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:
    Layout Styles
    Single-row layout:
    Single-row Compact
    See: SARibbon Layout Guide

  • Fully customizable via QSS, with real-time theme switching support. Includes 6 built-in themes:

    • Windows 7
      Win7 Theme
    • Office 2013
      Office 2013 Theme
    • Office 2016
      Office 2016 Theme
    • Office 2021
      Office 2021 Theme
    • Dark
      Dark Theme
    • Dark 2
      Dark 2 Theme

    You can design any theme via QSS. See: Design Your Theme

  • Provides a Gallery widget.
    Gallery

  • Supports horizontal scrolling and Option Actions.
    Option Action

  • Offers center-aligned mode.
    Center Alignment

  • 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!

Repositories


Building and Usage

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


Python Bindings

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  # PySide6

For building from source and detailed usage, see:

Python demo examples are in the pyexamples/ directory.


More Screenshots

Screenshots of real applications built with SARibbon:

Data Workbench GIF
Data Workbench EN
Data Workbench CN

For actual Ribbon implementation code, see:
https://github.com/czyt1988/data-workbench/blob/master/src/APP/DAAppRibbonArea.cpp


Documentation Generation

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 .qch files for integration into Qt Creator as Qt Help documentation. (Note: the -en variant does not yet exist — use Doxyfile-qch-cn as a reference, or create the -en version from it.)
  • docs/doxygen-doc-file/Doxyfile-wiki-en: generates HTML documentation for browser viewing. (Note: the -en variant does not yet exist — use Doxyfile-wiki-cn as a reference, or create the -en version from it.)

About

Ribbon Control for Qt

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages