Skip to main content

4种目前常见的ribbon样式.

Project description

PySARibbon

基于 sardkit/SARibbon-pyqt5czyt1988/SARibbon (C++ Qt) 的 Python Ribbon UI 框架,同时支持 PyQt5 和 PyQt6。

特性

  • 6 种 Ribbon 样式:Office/WPS × 三行/两行/单行
  • PyQt5 + PyQt6 双支持:通过 compat 兼容层自动适配
  • 完整组件:SARibbonMainWindow, SARibbonWidget, SARibbonBar, Category, Panel, ToolButton, Gallery
  • 新增组件:SARibbonColorToolButton, SARibbonSystemButtonBar, SARibbonApplicationWidget (Backstage)
  • 自定义系统:SARibbonCustomizeWidget 支持运行时自定义 Ribbon 布局
  • 7 个主题:dark, dark2, office2013, office2016-blue, office2021-blue, win7, matlab
  • 对齐 C++ v2.8.0:SingleRow 模式、enableIconRightText、enableWordWrap 等 API

安装

pip install PySARibbon

或从源码安装:

git clone https://github.com/LyingCortex/SARibbon-pyqt5.git
cd SARibbon-pyqt5
pip install -e .

依赖:PyQt5>=5.12PyQt6>=6.2

快速开始

from PySARibbon import SARibbonMainWindow, SARibbonBar
from PySARibbon.compat import QApplication, QAction, QIcon

app = QApplication([])

window = SARibbonMainWindow(None, True)
window.setWindowTitle("My App")

ribbon = window.ribbonBar()
ribbon.setTitle("File")

# 添加标签页和面板
category = ribbon.addCategoryPage("Main")
panel = category.addPanel("File")
panel.addLargeAction(QAction(QIcon(), "New", window))
panel.addLargeAction(QAction(QIcon(), "Open", window))
panel.addSmallAction(QAction(QIcon(), "Save", window))

# 切换样式
ribbon.setRibbonStyle(SARibbonBar.WpsLiteStyleSingleRow)

window.show()
app.exec()

样式预览

样式 高度
OfficeStyle (三行) 160px
WpsLiteStyle (三行) 130px
OfficeStyleTwoRow 134px
WpsLiteStyleTwoRow 104px
OfficeStyleSingleRow 100px
WpsLiteStyleSingleRow 80px

运行示例

cd example
set PYTHONPATH=..\src       # Windows
export PYTHONPATH=../src    # Linux/Mac
python fullDemo.py

测试

QT_QPA_PLATFORM=offscreen python -m pytest tests/ -v

项目结构

src/PySARibbon/
├── compat.py                  # PyQt5/PyQt6 兼容层
├── SARibbonMainWindow.py      # 主窗口
├── SARibbonWidget.py          # 可嵌入的 Ribbon 容器
├── SARibbonBar.py             # Ribbon 工具栏
├── SARibbonBarLayout.py       # Bar 布局管理器
├── SARibbonCategory.py        # 标签页
├── SARibbonCategoryLayout.py  # 标签页布局管理器
├── SARibbonPanel.py           # 面板
├── SARibbonPanelLayout.py     # 面板布局管理器
├── SARibbonApplicationWidget.py  # Backstage 面板
├── SARibbonSystemButtonBar.py    # 系统按钮栏
├── SAWidgets/                 # 子控件(ToolButton, ColorToolButton, Gallery 等)
├── SACustomize/               # 自定义化系统
└── resource/                  # 主题 QSS 文件

致谢

许可证

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysaribbon-0.1.0.tar.gz (151.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pysaribbon-0.1.0-py3-none-any.whl (187.2 kB view details)

Uploaded Python 3

File details

Details for the file pysaribbon-0.1.0.tar.gz.

File metadata

  • Download URL: pysaribbon-0.1.0.tar.gz
  • Upload date:
  • Size: 151.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pysaribbon-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b227ebfdb47bdd5b4188ac3d6bdbd34fb07069419acedb3b9d53f184f26c9d6d
MD5 8121b7181954bd1fa92287a17c2c720f
BLAKE2b-256 301af60129c859593bb7bcd3dd908717902406b54dfefbb5261cb00fb8be9fe3

See more details on using hashes here.

File details

Details for the file pysaribbon-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pysaribbon-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 187.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pysaribbon-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e1c3c714ec18b1d4f18925b67d266b6947771867eb155d88cd5438c3e79b882b
MD5 f1914d69f4b98a18c378f141e7299639
BLAKE2b-256 caf668a5132ccab760869dc6f75aa406db34c37e7ffe69e61845e4d92185159c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page