#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* 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 m_vecSubCtrls; };