SARibbon 2.5.1
SARibbon wiki
载入中...
搜索中...
未找到
SARibbonBarLayout类 参考
类 SARibbonBarLayout 继承关系图:

class  PrivateData
 

Public 成员函数

 SARibbonBarLayout (SARibbonBar *parent)
 
void addItem (QLayoutItem *item) override
 
QLayoutItem * itemAt (int index) const override
 
QLayoutItem * takeAt (int index) override
 
int count () const override
 
QSize sizeHint () const override
 
QSize minimumSize () const override
 
void setGeometry (const QRect &rect) override
 
virtual void doLayout ()
 
bool isLooseStyle () const
 
bool isCompactStyle () const
 
const QRect & titleRect () const
 
int calcMinTabBarWidth () const
 计算tabbar的最小尺寸
 
void resetSize ()
 
void layoutTitleRect ()
 
void layoutStackedContainerWidget ()
 
void layoutCategory ()
 让category重新布局
 
void setSystemButtonSize (const QSize &size)
 
void setTabOnTitle (bool on)
 
bool isTabOnTitle () const
 设置tab在title上面,这样可以省略title区域
 
int minimumModeMainBarHeight () const
 最小模式下的高度
 
int normalModeMainBarHeight () const
 正常模式下的高度
 
int tabBarHeight () const
 tabBar的高度
 
void setTabBarHeight (int h)
 设置tabBar的高度
 
int titleBarHeight () const
 返回标题栏高度
 
void setTitleBarHeight (int h)
 设置标题栏的高度
 
int categoryHeight () const
 category的高度
 
void setCategoryHeight (int h)
 设置category的高度
 
int panelTitleHeight () const
 SARibbonBarLayout::panelTitleHeight
 
void setPanelTitleHeight (int h)
 设置panel的高度
 
void setWindowIcon (const QIcon &icon)
 设置主窗口左上角的图标
 
QIcon windowIcon () const
 左上角图标
 
SARibbonBarribbonBar () const
 tab是否在title上面
 
SARibbonTabBarribbonTabBar () const
 
SARibbonStackedWidgetstackedContainerWidget () const
 
SARibbonQuickAccessBarquickAccessBar () const
 
SARibbonButtonGroupWidgetrightButtonGroup () const
 
QAbstractButton * applicationButton () const
 
SARibbonTitleIconWidgettitleIconWidget () const
 

Protected 成员函数

void resizeInLooseStyle ()
 
void resizeInCompactStyle ()
 

成员函数说明

◆ calcMinTabBarWidth()

int SARibbonBarLayout::calcMinTabBarWidth ( ) const

计算tabbar的最小尺寸

此函数的作用是在tabbar居中布局时,tabbar不是占满整个宽度,而是按照最小尺寸来占据宽度,让tabbar的长度刚刚好, 这样能让出mainwindow的空间,接受鼠标事件,从而实现拖动等操作,否则tabbar占用整个顶栏,鼠标无法点击到mainwindow

返回

◆ categoryHeight()

int SARibbonBarLayout::categoryHeight ( ) const

category的高度

返回

◆ isTabOnTitle()

bool SARibbonBarLayout::isTabOnTitle ( ) const

设置tab在title上面,这样可以省略title区域

参数
on

◆ layoutCategory()

void SARibbonBarLayout::layoutCategory ( )

让category重新布局

这个函数在调整category的对其方式的时候调用,由于对其方式改变StackedContainerWidget的尺寸没有改变,但category要重新布局,因此需要发射一个

◆ minimumModeMainBarHeight()

int SARibbonBarLayout::minimumModeMainBarHeight ( ) const

最小模式下的高度

返回

◆ normalModeMainBarHeight()

int SARibbonBarLayout::normalModeMainBarHeight ( ) const

正常模式下的高度

有可能SARibbonBar::height和mainBarHeight不相等,这种情况发生在RibbonState::MinimumRibbonMode状态下

返回
高度

◆ panelTitleHeight()

int SARibbonBarLayout::panelTitleHeight ( ) const

◆ resizeInCompactStyle()

void SARibbonBarLayout::resizeInCompactStyle ( )
protected

< 记录ribbonBar的最小宽度,这个用于给推荐宽度

  1. 布局corner widget - TopLeftCorner
  1. 布局图标窗口
  1. 布局applicationButton
  1. 布局corner widget TopRightCorner
  1. 布局右边按钮组rightButtonGroup
  1. 布局quick access bar

6.布局 tab bar

◆ resizeInLooseStyle()

void SARibbonBarLayout::resizeInLooseStyle ( )
protected

< 记录ribbonBar的最小宽度,这个用于给推荐宽度

  1. 布局corner widget
  1. 布局图标窗口
  1. 布局quick access bar

这里不用SA::scaleSizeByHeight缩减quickAccessBar的比例: quickAccessBarSize = SA::scaleSizeByHeight(quickAccessBarSize, titleBarControlHeight); 原因是,如果quickAccessBar最后是一个widget,如果长度不足,这个widget是不会显示出来,假如默认QToolBar的高度是32, 而titlebar的高度一是28,肯定会导致宽度缩减,如果宽度缩减,且最后是一个窗口,那么这个窗口会不显示 针对工具栏类型的窗口,宽度高度都不进行比例缩减

titleBar上的元素布局完成,开始布局第二行

  1. 布局 applicationButton
  1. 布局TopRightCorner窗口 cornerWidget(Qt::TopRightCorner)是一定要配置的,对于多文档窗口,子窗口的缩放恢复按钮就是通过这个窗口实现, 由于这个窗口一定要在最右,因此先对这个窗口进行布局
  1. tabBar右边的附加按钮组rightButtonGroup,这里一般会附加一些类似登录等按钮组

这里不用SA::scaleSizeByHeight缩减rightButtonGroup的比例: rightBtnGroupSize = SA::scaleSizeByHeight(rightBtnGroupSize, tabBarControlHeight); 针对工具栏类型的窗口,宽度高度都不进行比例缩减

6.布局tabbar,此时已经确定了applicationButton的位置,以及最右边rightButtonGroup的位置,剩下的区域都给tabbar

◆ ribbonBar()

SARibbonBar * SARibbonBarLayout::ribbonBar ( ) const

tab是否在title上面

返回

◆ setCategoryHeight()

void SARibbonBarLayout::setCategoryHeight ( int  h)

设置category的高度

参数
h

◆ setPanelTitleHeight()

void SARibbonBarLayout::setPanelTitleHeight ( int  h)

设置panel的高度

参数
h

◆ setTabBarHeight()

void SARibbonBarLayout::setTabBarHeight ( int  h)

设置tabBar的高度

参数
h

◆ setTitleBarHeight()

void SARibbonBarLayout::setTitleBarHeight ( int  h)

设置标题栏的高度

参见
titleBarHeight
注解
此操作会发射titleBarHeightChanged 信号
参数
h

◆ setWindowIcon()

void SARibbonBarLayout::setWindowIcon ( const QIcon &  icon)

设置主窗口左上角的图标

参数
icon

◆ tabBarHeight()

int SARibbonBarLayout::tabBarHeight ( ) const

tabBar的高度

返回

◆ titleBarHeight()

int SARibbonBarLayout::titleBarHeight ( ) const

返回标题栏高度

参见
setTitleBarHeight
返回

◆ windowIcon()

QIcon SARibbonBarLayout::windowIcon ( ) const

左上角图标

返回

该类的文档由以下文件生成: