创建Ribbon风格的窗口¶
创建Ribbon风格的MainWindow¶
SARibbon 的核心是SARibbonBar这个类,它可以用于MainWindow也可以用于Widget
如果用于MainWindow,您的主窗口应继承自 SARibbonMainWindow,它会自动为您创建一个 SARibbonBar
创建Ribbon风格的MainWindow示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
注意事项:
如果你的 MainWindow 是通过 Qt Designer 创建的,务必在 Designer 中删除默认的 menuBar。因为 SARibbonMainWindow 会用自己的 SARibbonBar 替换掉原生的菜单栏,如果 .ui 文件中保留了原生菜单栏,会把ribbon菜单覆盖回原生的菜单。
SARibbonMainWindow的构造函数有三个参数,其定义如下:
1 | |
最关键是第二个参数,第二个参数SARibbonMainWindowStyles决定了窗口的总体样式风格,常用的是下面两种搭配:
-
SARibbonMainWindowStyleFlag::UseRibbonMenuBar|SARibbonMainWindowStyleFlag::UseRibbonFrame此风格为默认风格,使用ribbon风格菜单栏和ribbon风格边框,这时候窗口是一个自定义边框,不使用原生边框,界面效果如下:

-
SARibbonMainWindowStyleFlag::UseRibbonMenuBar|SARibbonMainWindowStyleFlag::UseNativeFrame此风格为使用ribbon风格菜单栏和原生边框,这个界面的好处是支持操作系统的边框特效,例如win11的全局窗口快捷键,以及一些边框特效

在使用原生边框的时候,为了更适配原生边框,SARibbonMainWindow会把图标隐藏,同时把ribbonbar的样式设置为紧凑模式:
1 2 3 4 5 6 7 8 9 | |
创建Ribbon风格的Widget¶
除了主窗口,您也可以在普通的 QWidget 或 QDialog 上使用 Ribbon 界面,这在创建复杂对话框或子窗口时非常有用。为此,SARibbon 提供了 SARibbonWidget 类。
1 2 3 4 5 6 7 8 | |
实现文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
通过 setWidget() 方法,您可以将任意 QWidget 嵌入到 SARibbonWidget 中