![]() |
SARibbon 2.5.1
SARibbon wiki
|
类 | |
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 |
左上角图标 | |
SARibbonBar * | ribbonBar () const |
tab是否在title上面 | |
SARibbonTabBar * | ribbonTabBar () const |
SARibbonStackedWidget * | stackedContainerWidget () const |
SARibbonQuickAccessBar * | quickAccessBar () const |
SARibbonButtonGroupWidget * | rightButtonGroup () const |
QAbstractButton * | applicationButton () const |
SARibbonTitleIconWidget * | titleIconWidget () const |
Protected 成员函数 | |
void | resizeInLooseStyle () |
void | resizeInCompactStyle () |
int SARibbonBarLayout::calcMinTabBarWidth | ( | ) | const |
计算tabbar的最小尺寸
此函数的作用是在tabbar居中布局时,tabbar不是占满整个宽度,而是按照最小尺寸来占据宽度,让tabbar的长度刚刚好, 这样能让出mainwindow的空间,接受鼠标事件,从而实现拖动等操作,否则tabbar占用整个顶栏,鼠标无法点击到mainwindow
int SARibbonBarLayout::categoryHeight | ( | ) | const |
category的高度
bool SARibbonBarLayout::isTabOnTitle | ( | ) | const |
设置tab在title上面,这样可以省略title区域
on |
void SARibbonBarLayout::layoutCategory | ( | ) |
让category重新布局
这个函数在调整category的对其方式的时候调用,由于对其方式改变StackedContainerWidget的尺寸没有改变,但category要重新布局,因此需要发射一个
int SARibbonBarLayout::minimumModeMainBarHeight | ( | ) | const |
最小模式下的高度
int SARibbonBarLayout::normalModeMainBarHeight | ( | ) | const |
正常模式下的高度
有可能SARibbonBar::height和mainBarHeight不相等,这种情况发生在RibbonState::MinimumRibbonMode状态下
int SARibbonBarLayout::panelTitleHeight | ( | ) | const |
|
protected |
< 记录ribbonBar的最小宽度,这个用于给推荐宽度
6.布局 tab bar
|
protected |
< 记录ribbonBar的最小宽度,这个用于给推荐宽度
这里不用SA::scaleSizeByHeight缩减quickAccessBar的比例: quickAccessBarSize = SA::scaleSizeByHeight(quickAccessBarSize, titleBarControlHeight); 原因是,如果quickAccessBar最后是一个widget,如果长度不足,这个widget是不会显示出来,假如默认QToolBar的高度是32, 而titlebar的高度一是28,肯定会导致宽度缩减,如果宽度缩减,且最后是一个窗口,那么这个窗口会不显示 针对工具栏类型的窗口,宽度高度都不进行比例缩减
titleBar上的元素布局完成,开始布局第二行
这里不用SA::scaleSizeByHeight缩减rightButtonGroup的比例: rightBtnGroupSize = SA::scaleSizeByHeight(rightBtnGroupSize, tabBarControlHeight); 针对工具栏类型的窗口,宽度高度都不进行比例缩减
6.布局tabbar,此时已经确定了applicationButton的位置,以及最右边rightButtonGroup的位置,剩下的区域都给tabbar
SARibbonBar * SARibbonBarLayout::ribbonBar | ( | ) | const |
tab是否在title上面
void SARibbonBarLayout::setCategoryHeight | ( | int | h | ) |
设置category的高度
h |
void SARibbonBarLayout::setPanelTitleHeight | ( | int | h | ) |
设置panel的高度
h |
void SARibbonBarLayout::setTabBarHeight | ( | int | h | ) |
设置tabBar的高度
h |
void SARibbonBarLayout::setTitleBarHeight | ( | int | h | ) |
void SARibbonBarLayout::setWindowIcon | ( | const QIcon & | icon | ) |
设置主窗口左上角的图标
icon |
int SARibbonBarLayout::tabBarHeight | ( | ) | const |
tabBar的高度
int SARibbonBarLayout::titleBarHeight | ( | ) | const |
QIcon SARibbonBarLayout::windowIcon | ( | ) | const |
左上角图标