7 Star 18 Fork 11

canpool / QxRibbon

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

前言

    QxRibbon

QxRibbon 是一款 Microsoft Ribbon for Qt 组件,最初是基于 SARibbon 演变而来,同时,也参考借鉴了 QtitanRibbon、BCGControls 等诸多 ribbon 风格组件的优秀功能/想法。

命名

关于 QxRibbon 名字的由来,先抱怨一下,起名字真是一件伤脑筋的事……

最初,仓库名叫 qtribbon,类名以 QRibbon 作为前缀。是的,大言不惭的参考了 Qt 源代码的命名方式,有一种 Qt 出品的感脚。后来,写着写着,发现能力不行、代码太烂,还是重新起个名字吧。。

于是,以 A-Z 这 26 个字母依次加到 Ribbon 前面看哪个更好看、更有意义,如下一些名字差点入选:

  • CRibbon:C 是 Class 的首字母,符合 Windows C++ 编程风格
  • JRibbon:J 是 Jie 的首字母,但又有点 Jave 的意味
  • KRibbon:K 是 KDE 的自字母,容易被认为是 KDE 出品
  • MRibbon:M 是 Ma,My,Microsoft 的首字母,MyRibbon 可以类比于 MySQL
  • XRibbon:X 代表无限

以上落选还有一点原因就是:体现不出 for Qt

我们知道,Qt 官方不支持 Ribbon 风格(Ribbon UI 风格是微软开创的,具有专利许可协议,许可协议对从构建 UI 的指令到每个按钮间的空格数都做了详细的规定。接受该协议的开发人员,必须同意严格遵循当前和未来的设计指南,并且不能用其开发与 MS Office 直接竞争的产品。据说微软已停用了协议授权,当前在未经授权的情况下,开发和使用 Ribbon 风格控件算不算侵权,存疑。。)

for Qt 像是 Qt + X(X 代表 Qt 没有的)的意思,想到这,那就叫 Q+Ribbon 吧……

好了,+ 肯定不行,那就改乘(x)吧(+旋转45°),于是就叫 QxRibbon,这样以后说不定还能做成一个系列,即 Qt x Others

现状

目前,市面上关于 Ribbon for Qt 的项目,有开源的,也有商用的,数量不在少数,下面罗列一些:

  • QtitanRibbon:一款商用的遵循 Microsoft Ribbon UI 的组件,功能高级
  • SARibbon:一款轻量级的 Ribbon 控件,功能中级
  • fancyribbon:一款精选的 Ribbon 控件,功能初级
  • QtRibbonGUI:一款简单的 Ribbon-UI,功能初级
  • QRibbon:标准 QMenuBar 自动转换为 Ribbon 风格,思路不错,功能初级
  • Qt-Ribbon-Widget:A Ribbon widget for Qt,功能初级
  • TabToolbar:A small library for creating tabbed toolbars,功能初级
  • CbersUI:QT Ribbon Plugin Framework,功能未知
  • qt-ribbon:A ribbon bar implementation for Qt widgets applications,功能未知
  • wribbon:Qt Ribbon library,功能未知
  • stripemenu:Menu tipo cinta basado en Qt ( Ribbon menu Qt-based ),功能未知
  • ribbon:SARibbon 衍生版本
  • ...

微软的 Ribbon 命名空间:System.Windows.Controls.Ribbon

QxRibbon 组件中关键的类名与其它主流的命名区别如下:

QxRibbon QtitanRibbon SARibbon BCGControls
RibbonWindow RibbonMainWindow SARibbonMainWindow N/A
RibbonBar RibbonBar SARibbonBar CBCGPRibbonBar
RibbonPage RibbonPage SARibbonCategory CBCGPRibbonCategory
RibbonGroup RibbonGroup SARibbonPanel CBCGPRibbonPanel
RibbonGallery RibbonGallery SARibbonGallery N/A
RibbonButton RibbonButton SARibbonToolButton CBCGPRibbonButton
RibbonQuickAccessBar RibbonQuickAccessBar SARibbonQuickAccessBar CBCGPRibbonQuickAccessToolbar

备注:

  • RibbonPage: 参考 QTabWidget 的 addTab(QWidget *page, const QString &label),其中第一个参数取名 page

计划

  • 形态:支持 QtWidgets、QtDesinger、QML/QtQuick、PyQt/PySide ...
  • 平台:支持 Windows、MacOS(Quartz)、Linux(X11:GNOME/KDE/Unity/XFCE/LXDE/DDE...,Wayland:GNOME/KDE/Unity...)
  • 构建:支持 qmake、cmake ...
  • ...

具体支持情况:

1)平台支持

平台 Windows MacOS Linux/X11 Linux/Wayland 备注
版本 10 openEuler 23.03/GNOME 43.2
Qt5Widgets
QtDesinger
Qt5Quick
PyQt5 Python 3.9
PySide2

2)构建支持

构建方式 支持 测试版本
qmake
cmake 3.19.2

3)Qt 版本支持

下面提供的支持是经过测试的,未提供的不代表不支持。

Qt4 Qt5 Qt6 Qt7
6.5.1
5.15.2
5.8.0
4.8.6 ×

仓库

教程

协议

  • 遵循 MIT 开源许可协议

规范

贡献

  • 欢迎提交 issue 对关心的问题发起讨论
  • 欢迎 Fork 仓库,pull request 贡献
  • 贡献者可在文件头版权中添加个人信息,格式如下:
/**
 * Copyleft (C) YYYY NAME EMAIL
 * Copyleft (C) 2023 maminjie <canpool@163.com>
 * SPDX-License-Identifier: MIT
**/

交流

  • QQ群:831617934(Qt业余交流)

演示

  • mainwindow demo(Windows 10)

  • mainwindow demo(openEuler 23.03/X11/GNOME 43.2)

  • mainwindow demo(ubuntu 16.04 LTS/unity 7.4.0)

  • mainwindow demo(Python 3.9/PyQt5)

案例

虚位以待中……

后语

欢迎广大 Qt 开源爱好者加入其中,乐在其中……

MIT License Copyright (c) 2023 canpool Copyright (c) 2020 czyt1988 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

Microsoft Ribbon for Qt 展开 收起
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C++
1
https://gitee.com/icanpool/QxRibbon.git
git@gitee.com:icanpool/QxRibbon.git
icanpool
QxRibbon
QxRibbon
master

搜索帮助