QtCanpool 3.3.0
载入中...
搜索中...
未找到
QxRibbon::RibbonGroup类 参考

group 用于对 ribbon 页窗口中的控件进行分组 更多...

#include <qxribbon/ribbongroup.h>

类 QxRibbon::RibbonGroup 继承关系图:

Public 类型

enum  GroupLayoutMode { ThreeRowMode , TwoRowMode }
 
enum  RowProportion { Auto , Large , Medium , Small }
 

Public 成员函数

 RibbonGroup (QWidget *parent=Q_NULLPTR)
 
 RibbonGroup (const QString &name, QWidget *parent=Q_NULLPTR)
 
 ~RibbonGroup () override
 
QString groupName () const
 
void setGroupName (const QString &title)
 设置group的标题
 
QString title () const
 
void setTitle (const QString &title)
 
void setActionRowProportion (QAction *action, RibbonGroup::RowProportion rp)
 设置action的行行为,行属性决定了ribbon group的显示方式
 
RibbonButton * addAction (QAction *action, RibbonGroup::RowProportion rp)
 添加action
 
RibbonButton * addLargeAction (QAction *action)
 添加大图标
 
RibbonButton * addMediumAction (QAction *action)
 在三栏模式下,强制加为2栏action
 
RibbonButton * addSmallAction (QAction *action)
 添加小图标
 
void addAction (QAction *act, QToolButton::ToolButtonPopupMode popMode, RibbonGroup::RowProportion rp=RibbonGroup::Large)
 添加一个action
 
QAction * addAction (const QString &text, const QIcon &icon, QToolButton::ToolButtonPopupMode popMode, RibbonGroup::RowProportion rp=RibbonGroup::Large)
 生成并添加一个action
 
RibbonButton * addMenu (QMenu *menu, RibbonGroup::RowProportion rp, QToolButton::ToolButtonPopupMode popMode=QToolButton::InstantPopup)
 添加一个普通菜单
 
RibbonButton * addLargeMenu (QMenu *menu, QToolButton::ToolButtonPopupMode popMode=QToolButton::InstantPopup)
 
RibbonButton * addSmallMenu (QMenu *menu, QToolButton::ToolButtonPopupMode popMode=QToolButton::InstantPopup)
 
RibbonButton * addActionMenu (QAction *action, QMenu *menu, RibbonGroup::RowProportion rp)
 添加一个ActionMenu
 
RibbonButton * addLargeActionMenu (QAction *action, QMenu *menu)
 添加action menu,action menu是一个特殊的menu,即可点击触发action,也可弹出菜单
 
QAction * addWidget (QWidget *w, RibbonGroup::RowProportion rp)
 添加窗口
 
QAction * addLargeWidget (QWidget *w)
 添加窗口,占用所有行
 
QAction * addMediumWidget (QWidget *w)
 添加窗口,占用ribbon的一行
 
QAction * addSmallWidget (QWidget *w)
 添加窗口,占用ribbon的一行
 
RibbonGallery * addGallery ()
 RibbonGroup::addGallery
 
QAction * addSeparator (int top=6, int bottom=6)
 添加分割线
 
int ribbonButtonCount () const
 
RibbonButton * ribbonButtonByIndex (int index) const
 
RibbonButton * ribbonButtonForAction (QAction *action) const
 从group中把action对应的button提取出来,如果action没有对应的button,就返回Q_NULLPTR
 
QList< RibbonButton * > ribbonButtons () const
 
bool hasOptionAction () const
 
void addOptionAction (QAction *action)
 添加操作action,如果要去除,传入Q_NULLPTR指针即可,RibbonGroup不会对QAction的所有权进行管理
 
int actionIndex (QAction *act) const
 action对应的布局index,此操作一般用于移动,其他意义不大
 
void moveAction (int from, int to)
 移动action
 
GroupLayoutMode groupLayoutMode () const
 
bool isTwoRow () const
 
virtual QSize optionActionButtonSize () const
 
virtual QSize sizeHint () const override
 
virtual QSize minimumSizeHint () const override
 
bool isExpanding () const
 判断此group是否为(水平)扩展模式
 
void setExpanding (bool expanding=true)
 把group设置为扩展模式,此时会撑大水平区域
 
bool isCanCustomize () const
 
void setCanCustomize (bool b)
 
int largeHeight () const
 获取大图标的高度
 
int titleHeight () const
 
void actionTriggered (QAction *action)
 

静态 Public 成员函数

static RibbonGroup::RowProportion getActionRowProportionProperty (QAction *action)
 获取action的行属性
 
static void setActionRowProportionProperty (QAction *action, RibbonGroup::RowProportion rp)
 把action的行属性设置进action中,action自身携带了行属性
 
static bool titleVisible ()
 
static void setTitleVisible (bool visible)
 
static int groupTitleHeight ()
 定义所有的 group 的标题栏高度,有别于
 
static void setGroupTitleHeight (int h)
 设置 group 的全局高度,此函数是个全局的影响
 

Protected 成员函数

void setGroupLayoutMode (GroupLayoutMode mode)
 
void updateItemGeometry ()
 
virtual void paintEvent (QPaintEvent *event) override
 
virtual void resizeEvent (QResizeEvent *event) override
 
virtual void actionEvent (QActionEvent *event) override
 处理action的事件
 

友元

class RibbonPage
 
class RibbonPagePrivate
 
class RibbonCustomizeWidgetPrivate
 

详细描述

group 用于对 ribbon 页窗口中的控件进行分组

ribbon 的 group 分为两行模式和三行模式,以 office 为代表的 ribbon 为 3 行模式,以 WPS 为代表的“紧凑派”就是 2 行模式, Ribbon 可通过 RibbonBar 的 RibbonBar::RibbonStyle 来指定模式 (通过函数 RibbonBar::setRibbonStyle )

在 group 中,可以通过 setExpanding 函数指定 group 水平扩展,如果 group 里面没有能水平扩展的控件,将会留白, 因此,建议在 group 里面有水平扩展的控件如( RibbonGallery )才指定这个函数

group 的布局通过 RibbonGroupLayout 来实现

在文件 ribbongroup.h 第 28 行定义.

成员枚举类型说明

◆ GroupLayoutMode

枚举值
ThreeRowMode 

三行布局模式,office就是三行布局模式,group能布置3行小toolbutton,默认模式

TwoRowMode 

两行布局模式,wps的后续布局模式就是两行布局模式,group能布置2行小toolbutton

在文件 ribbongroup.h 第 35 行定义.

◆ RowProportion

枚举值
Auto 

未定义占比,这时候将会依据expandingDirections来判断,如果能有Qt::Vertical,就等同于Large,否则就是Small

Large 

大占比,一个widget的高度会充满整个group

Medium 

中占比,在 RibbonGroup::groupLayoutMode 为 RibbonGroup::ThreeRowMode 时才会起作用, 且要同一列里两个都是 Medium 时,会在三行中占据两行

Small 

小占比,占RibbonGroup的一行,Medium在不满足条件时也会变为Small,但不会变为Large

在文件 ribbongroup.h 第 39 行定义.

构造及析构函数说明

◆ RibbonGroup() [1/2]

QxRibbon::RibbonGroup::RibbonGroup ( QWidget *  parent = Q_NULLPTR)
explicit

在文件 ribbongroup.cpp 第 116 行定义.

◆ RibbonGroup() [2/2]

QxRibbon::RibbonGroup::RibbonGroup ( const QString &  name,
QWidget *  parent = Q_NULLPTR 
)
explicit

在文件 ribbongroup.cpp 第 125 行定义.

◆ ~RibbonGroup()

QxRibbon::RibbonGroup::~RibbonGroup ( )
override

在文件 ribbongroup.cpp 第 131 行定义.

成员函数说明

◆ actionEvent()

void QxRibbon::RibbonGroup::actionEvent ( QActionEvent *  event)
overrideprotectedvirtual

处理action的事件

这里处理了ActionAdded,ActionChanged,ActionRemoved三个事件

ActionAdded时向布局请求,添加action,布局中同时触发了 createItem 函数 此函数用于生成窗口,例如QRibbonButton

ActionChanged时会让布局重新计算尺寸,并向page请求重新布局,有可能page的所有要重新调整尺寸

ActionRemoved会移除布局管理的QLayoutItem,并进行内存清理,这时窗口也会隐藏,同时销毁

参数
event
注解
所有action事件都会向page请求重新布局

在文件 ribbongroup.cpp 第 766 行定义.

◆ actionIndex()

int QxRibbon::RibbonGroup::actionIndex ( QAction *  act) const

action对应的布局index,此操作一般用于移动,其他意义不大

参数
act
返回
没有查到返回-1

在文件 ribbongroup.cpp 第 542 行定义.

◆ actionTriggered()

void QxRibbon::RibbonGroup::actionTriggered ( QAction *  action)

◆ addAction() [1/3]

QAction * QxRibbon::RibbonGroup::addAction ( const QString &  text,
const QIcon &  icon,
QToolButton::ToolButtonPopupMode  popMode,
RibbonGroup::RowProportion  rp = RibbonGroup::Large 
)

生成并添加一个action

如果不对此action做操作,RibbonGroup将管理此action

注解
action的父对象将设置为RibbonGroup,RibbonGroup在删除时将会删除子对象,会把这个action也删除, 如果不想此action也删除,需要对action重新设置父对象
参数
textaction的文字
iconaction的图标
popMode按钮的样式
rpaction在group中的占位情况,默认是大图标
返回
返回添加的action

在文件 ribbongroup.cpp 第 299 行定义.

◆ addAction() [2/3]

void QxRibbon::RibbonGroup::addAction ( QAction *  act,
QToolButton::ToolButtonPopupMode  popMode,
RibbonGroup::RowProportion  rp = RibbonGroup::Large 
)

添加一个action

参数
act
popMode按钮的样式
rpaction在group中的占位情况,默认是大图标

在文件 ribbongroup.cpp 第 271 行定义.

◆ addAction() [3/3]

RibbonButton * QxRibbon::RibbonGroup::addAction ( QAction *  action,
RibbonGroup::RowProportion  rp 
)

添加action

参数
actionaction
rp指定action的行占比
返回
返回对应的RibbonButton

在文件 ribbongroup.cpp 第 220 行定义.

◆ addActionMenu()

RibbonButton * QxRibbon::RibbonGroup::addActionMenu ( QAction *  action,
QMenu *  menu,
RibbonGroup::RowProportion  rp 
)

添加一个ActionMenu

参数
action
menu
rp
返回

在文件 ribbongroup.cpp 第 347 行定义.

◆ addGallery()

RibbonGallery * QxRibbon::RibbonGroup::addGallery ( )

RibbonGroup::addGallery

返回
注解
RibbonGroup将拥有RibbonGallery的管理权

在文件 ribbongroup.cpp 第 424 行定义.

◆ addLargeAction()

RibbonButton * QxRibbon::RibbonGroup::addLargeAction ( QAction *  action)

添加大图标

参数
action
参见
如果想获取actiom对应的RibbonButton,可以使用ribbonButtonForAction 函数

在文件 ribbongroup.cpp 第 238 行定义.

◆ addLargeActionMenu()

RibbonButton * QxRibbon::RibbonGroup::addLargeActionMenu ( QAction *  action,
QMenu *  menu 
)

添加action menu,action menu是一个特殊的menu,即可点击触发action,也可弹出菜单

参数
action点击触发的action,在group中,图标以此action的图标为准
menu需要弹出的menu
返回
返回

在文件 ribbongroup.cpp 第 364 行定义.

◆ addLargeMenu()

RibbonButton * QxRibbon::RibbonGroup::addLargeMenu ( QMenu *  menu,
QToolButton::ToolButtonPopupMode  popMode = QToolButton::InstantPopup 
)

在文件 ribbongroup.cpp 第 330 行定义.

◆ addLargeWidget()

QAction * QxRibbon::RibbonGroup::addLargeWidget ( QWidget *  w)

添加窗口,占用所有行

参数
w
返回
返回action(QWidgetAction)

在文件 ribbongroup.cpp 第 394 行定义.

◆ addMediumAction()

RibbonButton * QxRibbon::RibbonGroup::addMediumAction ( QAction *  action)

在三栏模式下,强制加为2栏action

注解
在两行模式下,Medium和Small等价 主要应用在ThreeRowMode下
参数
action
参见
如果想获取actiom对应的RibbonButton,可以使用ribbonButtonForAction 函数

在文件 ribbongroup.cpp 第 250 行定义.

◆ addMediumWidget()

QAction * QxRibbon::RibbonGroup::addMediumWidget ( QWidget *  w)

添加窗口,占用ribbon的一行

参数
w
返回

在文件 ribbongroup.cpp 第 404 行定义.

◆ addMenu()

RibbonButton * QxRibbon::RibbonGroup::addMenu ( QMenu *  menu,
RibbonGroup::RowProportion  rp,
QToolButton::ToolButtonPopupMode  popMode = QToolButton::InstantPopup 
)

添加一个普通菜单

参数
menu
rp
popMode菜单弹出模式,默认InstantPopup模式
返回

在文件 ribbongroup.cpp 第 314 行定义.

◆ addOptionAction()

void QxRibbon::RibbonGroup::addOptionAction ( QAction *  action)

添加操作action,如果要去除,传入Q_NULLPTR指针即可,RibbonGroup不会对QAction的所有权进行管理

参数
action
注解
要去除OptionAction直接传入Q_NULLPTR即可
RibbonGroup不对QAction的destroy进行关联,如果外部对action进行delete,需要先传入Q_NULLPTR给addOptionAction

在文件 ribbongroup.cpp 第 517 行定义.

◆ addSeparator()

QAction * QxRibbon::RibbonGroup::addSeparator ( int  top = 6,
int  bottom = 6 
)

添加分割线

参数
top上边距,默认 6
bottom下边距,默认 6

在文件 ribbongroup.cpp 第 439 行定义.

◆ addSmallAction()

RibbonButton * QxRibbon::RibbonGroup::addSmallAction ( QAction *  action)

添加小图标

参数
action
参见
如果想获取actiom对应的RibbonButton,可以使用ribbonButtonForAction 函数

在文件 ribbongroup.cpp 第 260 行定义.

◆ addSmallMenu()

RibbonButton * QxRibbon::RibbonGroup::addSmallMenu ( QMenu *  menu,
QToolButton::ToolButtonPopupMode  popMode = QToolButton::InstantPopup 
)

在文件 ribbongroup.cpp 第 335 行定义.

◆ addSmallWidget()

QAction * QxRibbon::RibbonGroup::addSmallWidget ( QWidget *  w)

添加窗口,占用ribbon的一行

参数
w
返回
返回action(QWidgetAction)

在文件 ribbongroup.cpp 第 414 行定义.

◆ addWidget()

QAction * QxRibbon::RibbonGroup::addWidget ( QWidget *  w,
RibbonGroup::RowProportion  rp 
)

添加窗口

参数
w
rp
返回
返回action(QWidgetAction)
注解
RibbonGroup并不会管理此窗口内存,在delete RibbonGroup时,此窗口如果父对象不是RibbonGroup将不会被删除

在文件 ribbongroup.cpp 第 377 行定义.

◆ getActionRowProportionProperty()

RibbonGroup::RowProportion QxRibbon::RibbonGroup::getActionRowProportionProperty ( QAction *  action)
static

获取action的行属性

参数
action
返回

在文件 ribbongroup.cpp 第 167 行定义.

◆ groupLayoutMode()

RibbonGroup::GroupLayoutMode QxRibbon::RibbonGroup::groupLayoutMode ( ) const

在文件 ribbongroup.cpp 第 560 行定义.

◆ groupName()

QString QxRibbon::RibbonGroup::groupName ( ) const

在文件 ribbongroup.cpp 第 136 行定义.

◆ groupTitleHeight()

int QxRibbon::RibbonGroup::groupTitleHeight ( )
static

定义所有的 group 的标题栏高度,有别于

参见
titleHeight 此函数是静态函数,获取的是全局的高度 而
titleHeight 函数会根据当前标题栏是否显示来返回标题栏高度,标题栏显示时调用该函数,否则返回0
返回

在文件 ribbongroup.cpp 第 685 行定义.

◆ hasOptionAction()

bool QxRibbon::RibbonGroup::hasOptionAction ( ) const

在文件 ribbongroup.cpp 第 505 行定义.

◆ isCanCustomize()

bool QxRibbon::RibbonGroup::isCanCustomize ( ) const

在文件 ribbongroup.cpp 第 640 行定义.

◆ isExpanding()

bool QxRibbon::RibbonGroup::isExpanding ( ) const

判断此group是否为(水平)扩展模式

返回
是扩展模式返回true

在文件 ribbongroup.cpp 第 624 行定义.

◆ isTwoRow()

bool QxRibbon::RibbonGroup::isTwoRow ( ) const

在文件 ribbongroup.cpp 第 586 行定义.

◆ largeHeight()

int QxRibbon::RibbonGroup::largeHeight ( ) const

获取大图标的高度

返回

在文件 ribbongroup.cpp 第 656 行定义.

◆ minimumSizeHint()

QSize QxRibbon::RibbonGroup::minimumSizeHint ( ) const
overridevirtual

在文件 ribbongroup.cpp 第 615 行定义.

◆ moveAction()

void QxRibbon::RibbonGroup::moveAction ( int  from,
int  to 
)

移动action

参数
from要移动action的位置,通过actionIndex 获取
to要移动的位置

在文件 ribbongroup.cpp 第 553 行定义.

◆ optionActionButtonSize()

QSize QxRibbon::RibbonGroup::optionActionButtonSize ( ) const
virtual

在文件 ribbongroup.cpp 第 592 行定义.

◆ paintEvent()

void QxRibbon::RibbonGroup::paintEvent ( QPaintEvent *  event)
overrideprotectedvirtual

在文件 ribbongroup.cpp 第 704 行定义.

◆ resizeEvent()

void QxRibbon::RibbonGroup::resizeEvent ( QResizeEvent *  event)
overrideprotectedvirtual

1.移动操作按钮到角落

2.resize后,重新设置分割线的高度 由于分割线在布局中,只要分割线足够高就可以,不需要重新设置

在文件 ribbongroup.cpp 第 731 行定义.

◆ ribbonButtonByIndex()

RibbonButton * QxRibbon::RibbonGroup::ribbonButtonByIndex ( int  index) const

在文件 ribbongroup.cpp 第 460 行定义.

◆ ribbonButtonCount()

int QxRibbon::RibbonGroup::ribbonButtonCount ( ) const

在文件 ribbongroup.cpp 第 455 行定义.

◆ ribbonButtonForAction()

RibbonButton * QxRibbon::RibbonGroup::ribbonButtonForAction ( QAction *  action) const

从group中把action对应的button提取出来,如果action没有对应的button,就返回Q_NULLPTR

参数
action
返回
如果action没有对应的button,就返回Q_NULLPTR

在文件 ribbongroup.cpp 第 474 行定义.

◆ ribbonButtons()

QList< RibbonButton * > QxRibbon::RibbonGroup::ribbonButtons ( ) const

在文件 ribbongroup.cpp 第 491 行定义.

◆ setActionRowProportion()

void QxRibbon::RibbonGroup::setActionRowProportion ( QAction *  action,
RibbonGroup::RowProportion  rp 
)

设置action的行行为,行属性决定了ribbon group的显示方式

参数
action需要设置的action,此action必须已经被group添加过
rp行为

在文件 ribbongroup.cpp 第 196 行定义.

◆ setActionRowProportionProperty()

void QxRibbon::RibbonGroup::setActionRowProportionProperty ( QAction *  action,
RibbonGroup::RowProportion  rp 
)
static

把action的行属性设置进action中,action自身携带了行属性

参数
action
rp

在文件 ribbongroup.cpp 第 183 行定义.

◆ setCanCustomize()

void QxRibbon::RibbonGroup::setCanCustomize ( bool  b)

在文件 ribbongroup.cpp 第 646 行定义.

◆ setExpanding()

void QxRibbon::RibbonGroup::setExpanding ( bool  expanding = true)

把group设置为扩展模式,此时会撑大水平区域

参数
expanding

在文件 ribbongroup.cpp 第 635 行定义.

◆ setGroupLayoutMode()

void QxRibbon::RibbonGroup::setGroupLayoutMode ( RibbonGroup::GroupLayoutMode  mode)
protected

在文件 ribbongroup.cpp 第 566 行定义.

◆ setGroupName()

void QxRibbon::RibbonGroup::setGroupName ( const QString &  title)

设置group的标题

注解
注意会触发windowTitleChange信号
参数
title标题

在文件 ribbongroup.cpp 第 146 行定义.

◆ setGroupTitleHeight()

void QxRibbon::RibbonGroup::setGroupTitleHeight ( int  h)
static

设置 group 的全局高度,此函数是个全局的影响

注解
RibbonStyleOption 会用到 groupTitleHeight ,调用设置函数后需要手动重新计算 RibbonStyleOption 的内容,
参见
RibbonStyleOption::recalc
参数
h

在文件 ribbongroup.cpp 第 696 行定义.

◆ setTitle()

void QxRibbon::RibbonGroup::setTitle ( const QString &  title)

在文件 ribbongroup.cpp 第 157 行定义.

◆ setTitleVisible()

void QxRibbon::RibbonGroup::setTitleVisible ( bool  visible)
static

在文件 ribbongroup.cpp 第 671 行定义.

◆ sizeHint()

QSize QxRibbon::RibbonGroup::sizeHint ( ) const
overridevirtual

在文件 ribbongroup.cpp 第 597 行定义.

◆ title()

QString QxRibbon::RibbonGroup::title ( ) const

在文件 ribbongroup.cpp 第 152 行定义.

◆ titleHeight()

int QxRibbon::RibbonGroup::titleHeight ( ) const

在文件 ribbongroup.cpp 第 661 行定义.

◆ titleVisible()

bool QxRibbon::RibbonGroup::titleVisible ( )
static

在文件 ribbongroup.cpp 第 666 行定义.

◆ updateItemGeometry()

void QxRibbon::RibbonGroup::updateItemGeometry ( )
protected

在文件 ribbongroup.cpp 第 576 行定义.

友元及相关函数文档

◆ RibbonCustomizeWidgetPrivate

friend class RibbonCustomizeWidgetPrivate
friend

在文件 ribbongroup.h 第 137 行定义.

◆ RibbonPage

friend class RibbonPage
friend

在文件 ribbongroup.h 第 135 行定义.

◆ RibbonPagePrivate

friend class RibbonPagePrivate
friend

在文件 ribbongroup.h 第 136 行定义.


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