You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/Include/iGui/iGuiRibbon/iWxToolBar.h

101 lines
2.8 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#pragma once
#include "iDlgBaseEx.h"
#include "iRibbonXmlTab.h"
#include "iGuiRibbon_global.h"
/// @brief Ribbon简化仅仅ToolBar模式
class I_GUI_RIBBON_EXPORT iWxToolBar : public iDlgBaseEx
{
Q_OBJECT
public:
explicit iWxToolBar(QString sXmlName = "", \
QWidget *parent = 0);
~iWxToolBar();
public:
virtual void initUI();
// 返回部分指针变量
vecRibbonTabPtr* getRibbonStruts();
QVector<QWidget*>* getSubCtrls();
// 根据辅助信息返回cmd
iRibbonXmlCmd* getCmdByExtInfo(QString sExtInfo);
// 根据ID返回cmd
iRibbonXmlCmd* getCmdByID(QString sID);
protected:
// 定义
void loadXmlStructs();
// 切换正常模式和简缩模式
virtual void swapTabMode(); //
// 各种类型
QWidget* createTabBy(iRibbonXmlTab* pTab);
QWidget* createGroupBy(iRibbonXmlGroup* pGroup);
QWidget* createCmdBy(iRibbonXmlCmd* pCmd);
QWidget* createCmdBy_Btn(iRibbonXmlCmd* pCmd);
QWidget* createCmdBy_Combo(iRibbonXmlCmd* pCmd);
QWidget* createCmdBy_Check(iRibbonXmlCmd* pCmd);
QWidget* createCmdBy_Radio(iRibbonXmlCmd* pCmd);
QWidget* createCmdBy_Text(iRibbonXmlCmd* pCmd);
QWidget* createCmdBy_Label(iRibbonXmlCmd* pCmd);
QWidget* createCmdBy_ListWx(iRibbonXmlCmd* pCmd);
//新增加边界框
QWidget* createCmdBy_LineEdit(iRibbonXmlCmd* pCmd);
virtual bool dealwithCmdSubBy(iRibbonXmlCmd* pCmd, QToolButton*& pBtn);
private slots:
void slotBtnClicked(); //Btn
void slotListCtrlIndexChanged(int); //Combox ListWx
void slotCheckCtrlClicked(bool); //CheckBox, RadioBox
signals:
/// @title Ribbon信号触发
/// @param pCtrl触发的子控件
/// @param pInfo关联的Ribbon配置信息来自xml
void sigRibbonActioned(QWidget* pCtrl,
iRibbonXmlCmd* pInfo,
QVariant o);
/// @title Ribbon信号触发
/// @param pCtrl触发的子控件
/// @param pInfo关联的Ribbon配置信息来自xml
/// @param listValues显示部分
/// @param listIDs
void sigRibbonGetListValues(QWidget* pCtrl,
iRibbonXmlCmd* pInfo,
QStringList& listValues,
QStringList& listIDs,
int& nCurSel);
void sigRibbonListWxCurChanged(QWidget* pCtrl,
iRibbonXmlCmd* pInfo,
int nCurSel);
void sigRibbonCheckWxClicked(QWidget* pCtrl,
iRibbonXmlCmd* pInfo,
bool bSelect);
protected:
QString m_sXmlName; //可以外部设定只是文件名不带xml后缀
// 配置化结构体
vecRibbonTabPtr m_vecTabXmls;
// 所有的控件
QVector<QWidget*> m_vecSubCtrls;
};