Qt功能区:简介与安装

Qt功能区

Qt 官方不支持 Ribbon 风格(Ribbon UI 风格是微软开创的,具有专利许可协议,许可协议对从构建 UI 的指令到每个按钮间的空格数都做了详细的规定。接受该协议的开发人员,必须同意严格遵循当前和未来的设计指南,并且不能用其开发与 MS Office 直接竞争的产品。

1. 功能区简介

目前,市面上关于 Ribbon for Qt 的项目,有开源的,也有商用的,数量不在少数。

项目名称 简介
QtitanRibbon 一款商用的遵循 Microsoft Ribbon UI 的组件,功能高级
SARibbon 一款轻量级的 Ribbon 控件,功能中级
fancyribbon 一款精选的 Ribbon 控件,功能初级
QtRibbonGUI 一款简单的 Ribbon-UI,功能初级
QRibbon 标准 QMenuBar 自动转换为 Ribbon 风格,思路不错,功能初级
Qt-Ribbon-Widge 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 衍生版本

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

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

2. SARibbon

2.1 简介

下载地址

SARibbon适用于大型软件、工业软件、复杂软件的ui,在设计时参考了MFC Ribbon接口的命名风格;界面样式参考了微软Office系列软件以及WPS软件的Ribbon界面,并结合了两者的优点。SARibbon是一个可定义多种主题风格的Ribbon控件,它能通过qss快速的定义出自己想要的主题风格.

功能:

  1. 针对Ribbon的布局和显示
  2. 支持最小化模式,ribbon只显示标签(默认双击标签会进行切换),支持上下文标签tab
  3. 支持quickAccessBar(word快速菜单),在不同布局模式下会有不同的显示效果
  4. 支持4种不同的ribbon button,普通按钮,延迟弹出菜单按钮,菜单按钮,action菜单按钮(action菜单按钮是此ribbon控件最主要解决的问题之一)
  5. 支持4种不同风格的布局样式:宽松和紧凑的三行和两行模式
  6. (Qt 样式表:Qt Style Sheets)对ribbon进行自定义设置,可实时切换主题,内置了5种不同风格的主题:win7主题,office2013主题,office2016主题,office2021主题,dark主题。
  7. 提供Gallery控件:Gallery 控件用于以某种布局方式展示一组图片、图标或者其他可视化元素,用户可以在其中浏览、选择这些元素。
  8. 支持超长滚动和Option Action
  9. 提供居中对齐模式

2.2 编译与安装

采用CMake进行编译。

在Windows平台中VS2019集成了cmake的功能,可以直接在VS中进行CMake文件的操作。在使用的过程中,最好安装最新版的cmake.VS中自带的cmake编译器不是最新版本,安装最新版本后就可以将VS中的cmake编译平台进行更新。

采用CMake-gui进行编译

再次点击"Configure"

点击"Generate"

编译后的文件变化情况对比:

在每个CMakeLists.txt文件目录下会生成VS的项目文件,打开项目文件配置后即可生成目标文件。

采用VS进行编译

打开根目录下的CMakeLists.txt文件,在VS中将自动完成配置。

右键"CMakeLists.txt"然后进行"生成"和"安装"即可。得到响应的静态库、动态库和案例展示。

Note:在借助第三方库再生成的动态和静态库中,最好采用编译平台直接生成。

安装与使用

详情参见VS中动态库和静态库的使用

本项目是在VS中使用,因此有些参数需要再VS项目中预先配置。

  • 公开的预定义宏
    SARibbon在编译过程中有些预定义宏,这些宏在基于visual studio的库引入是必须的
    1. SARIBBON_USE_3RDPARTY_FRAMELESSHELPER=1/0,此宏用来定义是否引入了QWindowkit库
    2. SARIBBON_ENABLE_SNAP_LAYOUT=1/0,此宏在SARIBBON_USE_3RDPARTY_FRAMELESSHELPER=1时才有用,用于定义是否开始windows11的snap layout效果
相关推荐
释厄62330 分钟前
错误无误公理——错误正确本同源都迭代定律——逆转有价值
android·开发语言·kotlin
2601_9628857241 分钟前
如何用 Python计算 CR能量指标(中间意愿指标)?
开发语言·python
临床数据科学和人工智能兴趣组1 小时前
在R语言的生态系统中,字符串处理一直是一个重要且复杂的任务
开发语言·正则表达式·r语言·r语言-4.2.1
蜗牛互联网1 小时前
Python调用Gemini Structured Outputs实现工单路由门禁
java·开发语言·人工智能·python
SEO_juper1 小时前
给网页做可引用性评分:判断内容够不够让 AI 引用(GEO 工具,附代码)
开发语言·人工智能·爬虫·python·seo·独立站
Wang's Blog2 小时前
Java 项目实战: 交友项目 - 产品定位、功能模块与客户端原型解读
java·开发语言·交友
盛世宏博北京2 小时前
十二防档案库房总线架构设计:恒湿消毒净化一体机 RS485 组网实战笔记
开发语言·笔记·php·恒湿机·档案八防温湿度
雪雪爱冲浪2 小时前
JavaScript 网络爬虫教程(2026)
开发语言·javascript·爬虫
要吃这碗饭2 小时前
JavaScript 网络爬虫教程(2026)
开发语言·javascript·爬虫
czq_26867194872 小时前
Python打卡第40天
开发语言·python