|
QtCanpool 3.3.0
|
group 用于对 ribbon 页窗口中的控件进行分组 更多...
#include <qxribbon/ribbongroup.h>

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 行定义.
| 枚举值 | |
|---|---|
| ThreeRowMode | 三行布局模式,office就是三行布局模式,group能布置3行小toolbutton,默认模式 |
| TwoRowMode | 两行布局模式,wps的后续布局模式就是两行布局模式,group能布置2行小toolbutton |
在文件 ribbongroup.h 第 35 行定义.
| 枚举值 | |
|---|---|
| Auto | 未定义占比,这时候将会依据expandingDirections来判断,如果能有Qt::Vertical,就等同于Large,否则就是Small |
| Large | 大占比,一个widget的高度会充满整个group |
| Medium | 中占比,在 RibbonGroup::groupLayoutMode 为 RibbonGroup::ThreeRowMode 时才会起作用, 且要同一列里两个都是 Medium 时,会在三行中占据两行 |
| Small | 小占比,占RibbonGroup的一行,Medium在不满足条件时也会变为Small,但不会变为Large |
在文件 ribbongroup.h 第 39 行定义.
|
explicit |
在文件 ribbongroup.cpp 第 116 行定义.
|
explicit |
在文件 ribbongroup.cpp 第 125 行定义.
|
override |
在文件 ribbongroup.cpp 第 131 行定义.
|
overrideprotectedvirtual |
处理action的事件
这里处理了ActionAdded,ActionChanged,ActionRemoved三个事件
ActionAdded时向布局请求,添加action,布局中同时触发了 createItem 函数 此函数用于生成窗口,例如QRibbonButton
ActionChanged时会让布局重新计算尺寸,并向page请求重新布局,有可能page的所有要重新调整尺寸
ActionRemoved会移除布局管理的QLayoutItem,并进行内存清理,这时窗口也会隐藏,同时销毁
| event |
在文件 ribbongroup.cpp 第 766 行定义.
| int QxRibbon::RibbonGroup::actionIndex | ( | QAction * | act | ) | const |
| void QxRibbon::RibbonGroup::actionTriggered | ( | QAction * | action | ) |
| QAction * QxRibbon::RibbonGroup::addAction | ( | const QString & | text, |
| const QIcon & | icon, | ||
| QToolButton::ToolButtonPopupMode | popMode, | ||
| RibbonGroup::RowProportion | rp = RibbonGroup::Large |
||
| ) |
生成并添加一个action
如果不对此action做操作,RibbonGroup将管理此action
| text | action的文字 |
| icon | action的图标 |
| popMode | 按钮的样式 |
| rp | action在group中的占位情况,默认是大图标 |
在文件 ribbongroup.cpp 第 299 行定义.
| void QxRibbon::RibbonGroup::addAction | ( | QAction * | act, |
| QToolButton::ToolButtonPopupMode | popMode, | ||
| RibbonGroup::RowProportion | rp = RibbonGroup::Large |
||
| ) |
| RibbonButton * QxRibbon::RibbonGroup::addAction | ( | QAction * | action, |
| RibbonGroup::RowProportion | rp | ||
| ) |
| RibbonButton * QxRibbon::RibbonGroup::addActionMenu | ( | QAction * | action, |
| QMenu * | menu, | ||
| RibbonGroup::RowProportion | rp | ||
| ) |
| RibbonGallery * QxRibbon::RibbonGroup::addGallery | ( | ) |
| RibbonButton * QxRibbon::RibbonGroup::addLargeAction | ( | QAction * | action | ) |
添加大图标
| action |
在文件 ribbongroup.cpp 第 238 行定义.
| RibbonButton * QxRibbon::RibbonGroup::addLargeActionMenu | ( | QAction * | action, |
| QMenu * | menu | ||
| ) |
添加action menu,action menu是一个特殊的menu,即可点击触发action,也可弹出菜单
| action | 点击触发的action,在group中,图标以此action的图标为准 |
| menu | 需要弹出的menu |
在文件 ribbongroup.cpp 第 364 行定义.
| RibbonButton * QxRibbon::RibbonGroup::addLargeMenu | ( | QMenu * | menu, |
| QToolButton::ToolButtonPopupMode | popMode = QToolButton::InstantPopup |
||
| ) |
在文件 ribbongroup.cpp 第 330 行定义.
| QAction * QxRibbon::RibbonGroup::addLargeWidget | ( | QWidget * | w | ) |
| RibbonButton * QxRibbon::RibbonGroup::addMediumAction | ( | QAction * | action | ) |
在三栏模式下,强制加为2栏action
| action |
在文件 ribbongroup.cpp 第 250 行定义.
| QAction * QxRibbon::RibbonGroup::addMediumWidget | ( | QWidget * | w | ) |
| RibbonButton * QxRibbon::RibbonGroup::addMenu | ( | QMenu * | menu, |
| RibbonGroup::RowProportion | rp, | ||
| QToolButton::ToolButtonPopupMode | popMode = QToolButton::InstantPopup |
||
| ) |
| void QxRibbon::RibbonGroup::addOptionAction | ( | QAction * | action | ) |
添加操作action,如果要去除,传入Q_NULLPTR指针即可,RibbonGroup不会对QAction的所有权进行管理
| action |
在文件 ribbongroup.cpp 第 517 行定义.
| QAction * QxRibbon::RibbonGroup::addSeparator | ( | int | top = 6, |
| int | bottom = 6 |
||
| ) |
| RibbonButton * QxRibbon::RibbonGroup::addSmallAction | ( | QAction * | action | ) |
添加小图标
| action |
在文件 ribbongroup.cpp 第 260 行定义.
| RibbonButton * QxRibbon::RibbonGroup::addSmallMenu | ( | QMenu * | menu, |
| QToolButton::ToolButtonPopupMode | popMode = QToolButton::InstantPopup |
||
| ) |
在文件 ribbongroup.cpp 第 335 行定义.
| QAction * QxRibbon::RibbonGroup::addSmallWidget | ( | QWidget * | w | ) |
| QAction * QxRibbon::RibbonGroup::addWidget | ( | QWidget * | w, |
| RibbonGroup::RowProportion | rp | ||
| ) |
添加窗口
| w | |
| rp |
在文件 ribbongroup.cpp 第 377 行定义.
|
static |
| RibbonGroup::GroupLayoutMode QxRibbon::RibbonGroup::groupLayoutMode | ( | ) | const |
在文件 ribbongroup.cpp 第 560 行定义.
| QString QxRibbon::RibbonGroup::groupName | ( | ) | const |
在文件 ribbongroup.cpp 第 136 行定义.
|
static |
定义所有的 group 的标题栏高度,有别于
在文件 ribbongroup.cpp 第 685 行定义.
| bool QxRibbon::RibbonGroup::hasOptionAction | ( | ) | const |
在文件 ribbongroup.cpp 第 505 行定义.
| bool QxRibbon::RibbonGroup::isCanCustomize | ( | ) | const |
在文件 ribbongroup.cpp 第 640 行定义.
| bool QxRibbon::RibbonGroup::isExpanding | ( | ) | const |
| bool QxRibbon::RibbonGroup::isTwoRow | ( | ) | const |
在文件 ribbongroup.cpp 第 586 行定义.
| int QxRibbon::RibbonGroup::largeHeight | ( | ) | const |
|
overridevirtual |
在文件 ribbongroup.cpp 第 615 行定义.
| void QxRibbon::RibbonGroup::moveAction | ( | int | from, |
| int | to | ||
| ) |
|
virtual |
在文件 ribbongroup.cpp 第 592 行定义.
|
overrideprotectedvirtual |
在文件 ribbongroup.cpp 第 704 行定义.
|
overrideprotectedvirtual |
| RibbonButton * QxRibbon::RibbonGroup::ribbonButtonByIndex | ( | int | index | ) | const |
在文件 ribbongroup.cpp 第 460 行定义.
| int QxRibbon::RibbonGroup::ribbonButtonCount | ( | ) | const |
在文件 ribbongroup.cpp 第 455 行定义.
| RibbonButton * QxRibbon::RibbonGroup::ribbonButtonForAction | ( | QAction * | action | ) | const |
从group中把action对应的button提取出来,如果action没有对应的button,就返回Q_NULLPTR
| action |
在文件 ribbongroup.cpp 第 474 行定义.
| QList< RibbonButton * > QxRibbon::RibbonGroup::ribbonButtons | ( | ) | const |
在文件 ribbongroup.cpp 第 491 行定义.
| void QxRibbon::RibbonGroup::setActionRowProportion | ( | QAction * | action, |
| RibbonGroup::RowProportion | rp | ||
| ) |
设置action的行行为,行属性决定了ribbon group的显示方式
| action | 需要设置的action,此action必须已经被group添加过 |
| rp | 行为 |
在文件 ribbongroup.cpp 第 196 行定义.
|
static |
| void QxRibbon::RibbonGroup::setCanCustomize | ( | bool | b | ) |
在文件 ribbongroup.cpp 第 646 行定义.
| void QxRibbon::RibbonGroup::setExpanding | ( | bool | expanding = true | ) |
|
protected |
在文件 ribbongroup.cpp 第 566 行定义.
| void QxRibbon::RibbonGroup::setGroupName | ( | const QString & | title | ) |
|
static |
设置 group 的全局高度,此函数是个全局的影响
| h |
在文件 ribbongroup.cpp 第 696 行定义.
| void QxRibbon::RibbonGroup::setTitle | ( | const QString & | title | ) |
在文件 ribbongroup.cpp 第 157 行定义.
|
static |
在文件 ribbongroup.cpp 第 671 行定义.
|
overridevirtual |
在文件 ribbongroup.cpp 第 597 行定义.
| QString QxRibbon::RibbonGroup::title | ( | ) | const |
在文件 ribbongroup.cpp 第 152 行定义.
| int QxRibbon::RibbonGroup::titleHeight | ( | ) | const |
在文件 ribbongroup.cpp 第 661 行定义.
|
static |
在文件 ribbongroup.cpp 第 666 行定义.
|
protected |
在文件 ribbongroup.cpp 第 576 行定义.
|
friend |
在文件 ribbongroup.h 第 137 行定义.
|
friend |
在文件 ribbongroup.h 第 135 行定义.
|
friend |
在文件 ribbongroup.h 第 136 行定义.