#pragma once #include #include #include "iPlugin_global.h" enum TabCloseMode { // pTabWx->setTabsClosable(true); //20171013 TCM_None = 0, //Tab页面不显示关闭按钮 TCM_Current, //只要当前激活的才显示 TCM_All //Tab所有页面显示关闭按钮 }; // 为了显示隐藏,临时 class TabItemInfo { public: TabItemInfo() { m_sName = ""; m_nIndex = -1; m_oIcon = QIcon(); m_sToolTip = ""; m_sWhatThis = ""; } QString m_sName; int m_nIndex; QIcon m_oIcon; QString m_sToolTip; QString m_sWhatThis; }; // ZxTabWidget该类实现TabWidget相关附加功能 class I_PLUGIN_EXPORT ZxTabWidget : public QTabWidget { Q_OBJECT public: ZxTabWidget(QWidget *parent = 0); ~ZxTabWidget(); // 关闭按钮模式 void setTabCloseMode(TabCloseMode o); TabCloseMode isTabCloseMode(); // Tab是否允许移动,默认不移动 void setTabMovable(bool b); bool isTabMovable(); // TabBar QTabBar* getTabBar(); void setTabBarHorW(int n); int getTabBarHorW(); // 显示/隐藏选项 void setTabItemVisible(int n, bool bVisible); bool isTabItemVisible(int n); void makesureCachedInfos(); protected slots: void slotFreshButton(int n); void slotCloseCurTab(); protected: // virtual void mouseDoubleClickEvent(QMouseEvent *); // event分发 virtual bool eventFilter(QObject *, QEvent *); signals: // 双击Item void sigItemDoubleClicked(int n); // 右击Item void sigItemRightClicked(int n, QPoint pos); protected: QTabBar* m_pTabBar; bool m_bTabMovable; //TabItem允许移动 TabCloseMode m_oTcm;//关闭按钮显示模式 // 为了显示隐藏,临时 QMap m_pCachedInfos; };