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

自定义界面窗口 更多...

#include <qxribbon/ribboncustomizewidget.h>

类 QxRibbon::RibbonCustomizeWidget 继承关系图:

Public 类型

enum  RibbonTreeShowType { ShowAllPage , ShowMainPage }
 定义ribbon树的显示类型 更多...
 
enum  ItemRole {
  LevelRole = Qt::UserRole + 1 , PointerRole , CanCustomizeRole , CustomizeRole ,
  CustomizeObjNameRole
}
 QStandardItem对应的role 更多...
 

Public 成员函数

 RibbonCustomizeWidget (RibbonBar *ribbonBar, QWidget *parent=Q_NULLPTR, Qt::WindowFlags f=Qt::WindowFlags())
 RibbonCustomizeWidget::RibbonCustomizeWidget
 
 ~RibbonCustomizeWidget ()
 
void setupActionsManager (RibbonActionsManager *mgr)
 设置action管理器
 
bool isChanged () const
 
const QStandardItemModel * model () const
 获取model
 
void updateModel ()
 根据当前的radiobutton选项来更新model
 
void updateModel (RibbonTreeShowType type)
 更新model
 
bool apply ()
 应用所有设定
 
bool toXml (QXmlStreamWriter *xml) const
 转换为xml
 
bool toXml (const QString &xmlpath) const
 把配置写入文件中
 
void fromXml (QXmlStreamReader *xml)
 从xml中加载QList<RibbonCustomizeData>
 
void fromXml (const QString &xmlpath)
 从xml中加载QList<RibbonCustomizeData>
 
void clear ()
 清除所有动作
 
void onComboBoxActionIndexCurrentIndexChanged (int index)
 
void onRadioButtonGroupButtonClicked (QAbstractButton *b)
 
void onPushButtonNewPageClicked ()
 
void onPushButtonNewGroupClicked ()
 
void onPushButtonRenameClicked ()
 
void onPushButtonAddClicked ()
 
void onPushButtonDeleteClicked ()
 
void onListViewSelectClicked (const QModelIndex &index)
 
void onTreeViewResultClicked (const QModelIndex &index)
 
void onToolButtonUpClicked ()
 
void onToolButtonDownClicked ()
 
void onItemChanged (QStandardItem *item)
 
void onLineEditSearchActionTextEdited (const QString &text)
 
void onPushButtonResetClicked ()
 

静态 Public 成员函数

static bool fromXml (QXmlStreamReader *xml, RibbonBar *bar, RibbonActionsManager *mgr)
 应用xml配置
 

Protected 成员函数

void simplify ()
 精简
 
RibbonGroup::RowProportion selectedRowProportion () const
 获取当前界面选中的行属性
 
QAction * selectedAction () const
 获取listview中选中的action
 
QAction * itemToAction (QStandardItem *item) const
 把item转换为action
 
QStandardItem * selectedItem () const
 获取ribbon tree选中的item
 
int selectedRibbonLevel () const
 获取选中的ribbon tree 的level
 
int itemLevel (QStandardItem *item) const
 获取StandardItem 的level
 
void setSelectItem (QStandardItem *item, bool ensureVisible=true)
 设置某个item被选中
 
bool isItemCanCustomize (QStandardItem *item) const
 判断itemn能否改动,可以改动返回true
 
bool isSelectedItemCanCustomize () const
 
bool isCustomizeItem (QStandardItem *item) const
 判断itemn能否改动,可以改动返回true
 
bool isSelectedItemIsCustomize () const
 
void removeItem (QStandardItem *item)
 

详细描述

自定义界面窗口

在文件 ribboncustomizewidget.h 第 29 行定义.

成员枚举类型说明

◆ ItemRole

QStandardItem对应的role

枚举值
LevelRole 

代表这是层级,有0:page 1:group 2:item

PointerRole 

代表这是存放指针。根据LevelRole来进行转

CanCustomizeRole 

代表个item是可以自定义的.bool

CustomizeRole 

代表这个是自定义的item,bool,主要用于那些自己添加的标签和group,有此角色必有CanCustomizeRole

CustomizeObjNameRole 

记录了临时的自定义内容的obj名 QString

在文件 ribboncustomizewidget.h 第 44 行定义.

◆ RibbonTreeShowType

定义ribbon树的显示类型

枚举值
ShowAllPage 

显示所有的页,包括上下文

ShowMainPage 

显示主要的页,不包含上下文

在文件 ribboncustomizewidget.h 第 36 行定义.

构造及析构函数说明

◆ RibbonCustomizeWidget()

QxRibbon::RibbonCustomizeWidget::RibbonCustomizeWidget ( RibbonBar *  ribbonBar,
QWidget *  parent = Q_NULLPTR,
Qt::WindowFlags  f = Qt::WindowFlags() 
)

RibbonCustomizeWidget::RibbonCustomizeWidget

参数
ribbonBar传入需要管理的ribbonBar指针
parent用于界面生成的parent
f同QWidget::QWidget的第二个参数

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

◆ ~RibbonCustomizeWidget()

QxRibbon::RibbonCustomizeWidget::~RibbonCustomizeWidget ( )

在文件 ribboncustomizewidget.cpp 第 675 行定义.

成员函数说明

◆ apply()

bool QxRibbon::RibbonCustomizeWidget::apply ( )

应用所有设定

先apply再simplify,保证操作都被应用到。

如果先simplify后apply会存在如下问题: 比如: 1.先添加一个元素,执行apply,元素被添加到ribbonBar 2.接着删除该元素,执行apply,由于先simplify,那么添加和删除相互抵消, 再apply时,元素将无法从ribbonBar中删除

返回
应用成功返回true
注解
所有设定有一个应用成功都会返回true

在文件 ribboncustomizewidget.cpp 第 787 行定义.

◆ clear()

void QxRibbon::RibbonCustomizeWidget::clear ( )

清除所有动作

在执行applys函数后,如果要继续调用,应该clear,否则会导致异常

在文件 ribboncustomizewidget.cpp 第 936 行定义.

◆ fromXml() [1/3]

void QxRibbon::RibbonCustomizeWidget::fromXml ( const QString &  xmlpath)

从xml中加载QList<RibbonCustomizeData>

对于基于配置文件的设置,对话框显示前建议调用此函数,保证叠加设置的正确记录

参数
xmlpath
注解
此函数要在setupActionsManager 函数之后调用
如果程序启动后加载了自定义配置,再调用此窗口时需要调用此函数,把原来的配置加载进来, 在生成新动作时会把旧动作保存,但在调用applys时不会调用此加载的动作

在文件 ribboncustomizewidget.cpp 第 889 行定义.

◆ fromXml() [2/3]

void QxRibbon::RibbonCustomizeWidget::fromXml ( QXmlStreamReader *  xml)

从xml中加载QList<RibbonCustomizeData>

对于基于配置文件的设置,对话框显示前建议调用此函数,保证叠加设置的正确记录

参数
xml
注解
此函数要在setupActionsManager 函数之后调用

在文件 ribboncustomizewidget.cpp 第 874 行定义.

◆ fromXml() [3/3]

bool QxRibbon::RibbonCustomizeWidget::fromXml ( QXmlStreamReader *  xml,
RibbonBar *  bar,
RibbonActionsManager *  mgr 
)
static

应用xml配置

注解
重复加载一个配置文件会发生异常,为了避免此类事件发生,一般通过一个变量保证只加载一次,如:
//只能调用一次
static bool has_call = false;
if (!has_call) {
QFile f("customize.xml");
if (!f.open(QIODevice::ReadWrite|QIODevice::Text)) {
return;
}
f.seek(0);
QXmlStreamReader xml(&f);
has_call = RibbonCustomizeWidget::fromXml(&xml, this, m_actMgr);
}
void fromXml(QXmlStreamReader *xml)
从xml中加载QList<RibbonCustomizeData>
参数
xml
bar
mgr
返回
所有设定有一个应用成功都会返回true
参见
QxRibbonCustomizeDataGetFromXml QxRibbonCustomizeDataApply QxRibbonCustomizeApplyFromXmlFile

在文件 ribboncustomizewidget.cpp 第 925 行定义.

◆ isChanged()

bool QxRibbon::RibbonCustomizeWidget::isChanged ( ) const

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

◆ isCustomizeItem()

bool QxRibbon::RibbonCustomizeWidget::isCustomizeItem ( QStandardItem *  item) const
protected

判断itemn能否改动,可以改动返回true

参数
item
返回

在文件 ribboncustomizewidget.cpp 第 1069 行定义.

◆ isItemCanCustomize()

bool QxRibbon::RibbonCustomizeWidget::isItemCanCustomize ( QStandardItem *  item) const
protected

判断itemn能否改动,可以改动返回true

参数
item
返回

在文件 ribboncustomizewidget.cpp 第 1054 行定义.

◆ isSelectedItemCanCustomize()

bool QxRibbon::RibbonCustomizeWidget::isSelectedItemCanCustomize ( ) const
protected

在文件 ribboncustomizewidget.cpp 第 1059 行定义.

◆ isSelectedItemIsCustomize()

bool QxRibbon::RibbonCustomizeWidget::isSelectedItemIsCustomize ( ) const
protected

在文件 ribboncustomizewidget.cpp 第 1074 行定义.

◆ itemLevel()

int QxRibbon::RibbonCustomizeWidget::itemLevel ( QStandardItem *  item) const
protected

获取StandardItem 的level

参数
item
返回

在文件 ribboncustomizewidget.cpp 第 1020 行定义.

◆ itemToAction()

QAction * QxRibbon::RibbonCustomizeWidget::itemToAction ( QStandardItem *  item) const
protected

把item转换为action

参数
item
返回
如果没有action可转换,返回Q_NULLPTR

在文件 ribboncustomizewidget.cpp 第 980 行定义.

◆ model()

const QStandardItemModel * QxRibbon::RibbonCustomizeWidget::model ( ) const

获取model

返回

在文件 ribboncustomizewidget.cpp 第 740 行定义.

◆ onComboBoxActionIndexCurrentIndexChanged()

void QxRibbon::RibbonCustomizeWidget::onComboBoxActionIndexCurrentIndexChanged ( int  index)

在文件 ribboncustomizewidget.cpp 第 1088 行定义.

◆ onItemChanged()

void QxRibbon::RibbonCustomizeWidget::onItemChanged ( QStandardItem *  item)

在文件 ribboncustomizewidget.cpp 第 1434 行定义.

◆ onLineEditSearchActionTextEdited()

void QxRibbon::RibbonCustomizeWidget::onLineEditSearchActionTextEdited ( const QString &  text)

在文件 ribboncustomizewidget.cpp 第 1451 行定义.

◆ onListViewSelectClicked()

void QxRibbon::RibbonCustomizeWidget::onListViewSelectClicked ( const QModelIndex &  index)

在文件 ribboncustomizewidget.cpp 第 1302 行定义.

◆ onPushButtonAddClicked()

void QxRibbon::RibbonCustomizeWidget::onPushButtonAddClicked ( )

在文件 ribboncustomizewidget.cpp 第 1223 行定义.

◆ onPushButtonDeleteClicked()

void QxRibbon::RibbonCustomizeWidget::onPushButtonDeleteClicked ( )

在文件 ribboncustomizewidget.cpp 第 1259 行定义.

◆ onPushButtonNewGroupClicked()

void QxRibbon::RibbonCustomizeWidget::onPushButtonNewGroupClicked ( )

在文件 ribboncustomizewidget.cpp 第 1132 行定义.

◆ onPushButtonNewPageClicked()

void QxRibbon::RibbonCustomizeWidget::onPushButtonNewPageClicked ( )

在文件 ribboncustomizewidget.cpp 第 1100 行定义.

◆ onPushButtonRenameClicked()

void QxRibbon::RibbonCustomizeWidget::onPushButtonRenameClicked ( )

在文件 ribboncustomizewidget.cpp 第 1183 行定义.

◆ onPushButtonResetClicked()

void QxRibbon::RibbonCustomizeWidget::onPushButtonResetClicked ( )

在文件 ribboncustomizewidget.cpp 第 1456 行定义.

◆ onRadioButtonGroupButtonClicked()

void QxRibbon::RibbonCustomizeWidget::onRadioButtonGroupButtonClicked ( QAbstractButton *  b)

在文件 ribboncustomizewidget.cpp 第 1095 行定义.

◆ onToolButtonDownClicked()

void QxRibbon::RibbonCustomizeWidget::onToolButtonDownClicked ( )

在文件 ribboncustomizewidget.cpp 第 1380 行定义.

◆ onToolButtonUpClicked()

void QxRibbon::RibbonCustomizeWidget::onToolButtonUpClicked ( )

在文件 ribboncustomizewidget.cpp 第 1336 行定义.

◆ onTreeViewResultClicked()

void QxRibbon::RibbonCustomizeWidget::onTreeViewResultClicked ( const QModelIndex &  index)

在文件 ribboncustomizewidget.cpp 第 1311 行定义.

◆ removeItem()

void QxRibbon::RibbonCustomizeWidget::removeItem ( QStandardItem *  item)
protected

在文件 ribboncustomizewidget.cpp 第 1079 行定义.

◆ selectedAction()

QAction * QxRibbon::RibbonCustomizeWidget::selectedAction ( ) const
protected

获取listview中选中的action

返回
如果没有选中action,返回Q_NULLPTR
注解
如果要获取treeview选中的action,使用itemToAction 函数

在文件 ribboncustomizewidget.cpp 第 963 行定义.

◆ selectedItem()

QStandardItem * QxRibbon::RibbonCustomizeWidget::selectedItem ( ) const
protected

获取ribbon tree选中的item

返回

在文件 ribboncustomizewidget.cpp 第 989 行定义.

◆ selectedRibbonLevel()

int QxRibbon::RibbonCustomizeWidget::selectedRibbonLevel ( ) const
protected

获取选中的ribbon tree 的level

返回
-1为选中异常,0代表选中了page 1代表选中了group 2代表选中了action

在文件 ribboncustomizewidget.cpp 第 1005 行定义.

◆ selectedRowProportion()

RibbonGroup::RowProportion QxRibbon::RibbonCustomizeWidget::selectedRowProportion ( ) const
protected

获取当前界面选中的行属性

返回

在文件 ribboncustomizewidget.cpp 第 953 行定义.

◆ setSelectItem()

void QxRibbon::RibbonCustomizeWidget::setSelectItem ( QStandardItem *  item,
bool  ensureVisible = true 
)
protected

设置某个item被选中

参数
item
ensureVisible是否确保该项可见

在文件 ribboncustomizewidget.cpp 第 1030 行定义.

◆ setupActionsManager()

void QxRibbon::RibbonCustomizeWidget::setupActionsManager ( RibbonActionsManager *  mgr)

设置action管理器

参数
mgr

在文件 ribboncustomizewidget.cpp 第 713 行定义.

◆ simplify()

void QxRibbon::RibbonCustomizeWidget::simplify ( )
protected

精简

在文件 ribboncustomizewidget.cpp 第 944 行定义.

◆ toXml() [1/2]

bool QxRibbon::RibbonCustomizeWidget::toXml ( const QString &  xmlpath) const

把配置写入文件中

参数
xmlpath
返回

在文件 ribboncustomizewidget.cpp 第 846 行定义.

◆ toXml() [2/2]

bool QxRibbon::RibbonCustomizeWidget::toXml ( QXmlStreamWriter *  xml) const

转换为xml

此函数仅会写element,不会写document相关内容,因此如果需要写document, 需要在此函数前调用QXmlStreamWriter::writeStartDocument(),在此函数后调用QXmlStreamWriter::writeEndDocument()

注解
注意,在传入QXmlStreamWriter之前,需要设置编码为utf-8:xml->setCodec("utf-8");
由于QXmlStreamWriter在QString作为io时,是不支持编码的,而此又无法保证自定义过程不出现中文字符, 因此,QXmlStreamWriter不应该通过QString进行构造,如果需要用到string,也需要通过QByteArray构造,如:
RibbonCustomizeDialog dlg(this);//this为RibbonWindow的窗口
dlg.setupActionsManager(m_actMgr);
if (RibbonCustomizeDialog::Accepted == dlg.exec()) {
dlg.apply();
QByteArray str;
QXmlStreamWriter xml(&str);//QXmlStreamWriter不建议通过QString构造,遇到中文会异常
xml.setAutoFormatting(true);
xml.setAutoFormattingIndent(2);
xml.setCodec("utf-8");//在writeStartDocument之前指定编码
xml.writeStartDocument();
bool isOk = dlg.toXml(&xml);
xml.writeEndDocument();
if (isOk) {
QFile f("customize.xml");
if (f.open(QIODevice::ReadWrite|QIODevice::Text|QIODevice::Truncate)) {
QTextStream s(&f);
s.setCodec("utf-8");//指定编码输出
s << str;
s.flush();
}
m_edit->append("write xml:");//m_edit的定义为:QTextEdit *m_edit;
m_edit->append(str);
}
}
RibbonCustomizeWidget 的对话框封装
返回
如果出现异常,返回false,如果没有自定义数据也会返回false
参见
QxRibbonCustomizeDataSetToXml

在文件 ribboncustomizewidget.cpp 第 832 行定义.

◆ updateModel() [1/2]

void QxRibbon::RibbonCustomizeWidget::updateModel ( )

根据当前的radiobutton选项来更新model

在文件 ribboncustomizewidget.cpp 第 748 行定义.

◆ updateModel() [2/2]

void QxRibbon::RibbonCustomizeWidget::updateModel ( RibbonTreeShowType  type)

更新model

在文件 ribboncustomizewidget.cpp 第 767 行定义.


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