![]() |
SARibbon 2.5.1
SARibbon wiki
|
如果要使用SARibbonBar,必须使用此类代替QMainWindow 更多...
#include <SARibbonMainWindow.h>
类 | |
class | PrivateData |
The SARibbonMainWindowPrivate class | |
Public 成员函数 | |
SARibbonMainWindow (QWidget *parent=nullptr, SARibbonMainWindowStyles style=SARibbonMainWindowStyleFlag::UseRibbonMenuBar|SARibbonMainWindowStyleFlag::UseRibbonFrame, const Qt::WindowFlags flags=Qt::WindowFlags()) | |
构造一个 SARibbonMainWindow 实例。 | |
SARibbonBar * | ribbonBar () const |
返回ribbonbar,如果不是使用ribbon模式,返回nullptr | |
void | setRibbonBar (SARibbonBar *ribbon) |
设置ribbonbar | |
SAFramelessHelper * | framelessHelper () |
void | updateWindowFlag (Qt::WindowFlags flags) |
此函数仅用于控制最小最大化和关闭按钮的显示 | |
void | setRibbonTheme (SARibbonTheme theme) |
SARibbonMainWindow::setRibbonTheme | |
SARibbonTheme | ribbonTheme () const |
bool | isUseRibbon () const |
SARibbonSystemButtonBar * | windowButtonBar () const |
获取系统按钮组,可以在此基础上添加其他按钮 | |
SARibbonMainWindowStyles | ribbonMainwindowStyle () const |
获取当前ribbonMainWidow的样式 | |
virtual bool | eventFilter (QObject *obj, QEvent *e) Q_DECL_OVERRIDE |
Protected 成员函数 | |
SARibbonBar * | createRibbonBar () |
创建ribbonbar的工厂函数 | |
属性 | |
SARibbonTheme | ribbonTheme |
友元 | |
class | SARibbonBar |
如果要使用SARibbonBar,必须使用此类代替QMainWindow
由于ribbon的风格和传统的Toolbar风格差异较大, SARibbonBar使用需要把原有的QMainWindow替换为SARibbonMainWindow, SARibbonMainWindow是个无边框窗体,继承自QMainWindow(目前使用第三方的无边框方案https://github.com/wangwenx190/framelesshelper), 其构造函数的参数useRibbon用于指定是否使用ribbon风格,默认为true
如果想换回非ribbon风格,只需要把useRibbon设置为false即可, 成员函数isUseRibbon用于判断当前是否为ribbon模式,这个函数在兼容传统Toolbar风格和ribbon风格时非常有用
但这个不支持动态切换,因此,实际工程中,你若要进行切换,需要写配置文件,程序在构造时传入模式, 并且,你的程序要做好判断,因为非Ribbon模式下,所有Ribbon相关的接口都会返回空指针
SARibbonMainWindow 提供了几种常用的ribbon样式 通过setRibbonTheme 可改变ribbon的样式,用户也可通过qss自己定义自己的样式
如果你自己继承了SARibbonBar,你可以通过setRibbonBar 设置自己的ribbonbar进去
另外有个一个更加高效的方法,来实现自定义的Ribbon,就是继承一个SARibbonElementFactory
SARibbonMainWindow生成之前(一般在main函数),设置元件工厂:
此时,Ribbon的元素会通过MyRibbonFactory的接口来生成
|
explicit |
构造一个 SARibbonMainWindow 实例。
此构造函数初始化一个带有 Ribbon 界面风格的主窗口,支持自定义窗口样式(如是否使用 Ribbon 边框、菜单栏等), 并根据样式自动配置窗口行为(如无边框、RibbonBar 安装等)。
parent | 父窗口部件 |
style | 窗口样式标志,控制窗口外观和行为。支持以下标志组合:
|
flags | 标准 Qt 窗口标志 |
UseRibbonFrame,则窗口将自动安装无边框支持。
|
protected |
创建ribbonbar的工厂函数
用户如果重写了SARibbonBar,可以通过重新此虚函数返回自己的Ribbon实例
SARibbonBar * SARibbonMainWindow::ribbonBar | ( | ) | const |
返回ribbonbar,如果不是使用ribbon模式,返回nullptr
SARibbonMainWindowStyles SARibbonMainWindow::ribbonMainwindowStyle | ( | ) | const |
获取当前ribbonMainWidow的样式
void SARibbonMainWindow::setRibbonBar | ( | SARibbonBar * | ribbon | ) |
设置ribbonbar
bar |
void SARibbonMainWindow::setRibbonTheme | ( | SARibbonTheme | theme | ) |
SARibbonMainWindow::setRibbonTheme
注意某些版本的qt,在构造函数设置主题会不完全生效,可以使用QTimer投放到队列最后执行,如:
theme |
SARibbonSystemButtonBar * SARibbonMainWindow::windowButtonBar | ( | ) | const |
获取系统按钮组,可以在此基础上添加其他按钮