#ifndef TOPQUICKTOOLBARV2_H #define TOPQUICKTOOLBARV2_H #include <QToolBar> #include <QVariant> #include <QVariantList> class QStackedWidget; class TopQuickButtonV2; class QMenu; class TopQuickToolBarV2Private; class TopQuickToolBarV2 : public QToolBar { Q_OBJECT public: enum ToolBarIconStyle { ToolBarIconStyle_BigIconNotText = 0, // 大图标 不含文字 ToolBarIconStyle_MidIconNoText = 1, // 中图标 不含文字 ToolBarIconStyle_MidIconUnderText = 2, // 中图标 含文字(下方) ToolBarIconStyle_LittleIconNotText = 3, // 小图标 不含文字 ToolBarIconStyle_LittleIconUnderText = 4, // 小图标 含文字(下方) ToolBarIconStyle_LittleIconBesideText = 5, // 小图标 含文字(旁边) ToolBarIconStyle_NoIconOnlyText = 6, // 只有文字 不含图标 ToolBarIconStyle_Count = 7 }; explicit TopQuickToolBarV2(QWidget *parent); ~TopQuickToolBarV2(); signals: void iconStyleChanged(int iconStyleInt); void toolBarButtonReloaded(Qt::ToolButtonStyle, QSize, QSize); void sizeChanged(QSize); public slots: void setLanguage(const QString &iLangStr); QString language() const; void loadQuickButtons(const QVariantList &iVarList); TopQuickButtonV2 *addQuickButton(const QVariantMap &iParam); void initToolButtonStyleSize(int iconStyleInt); void setToolButtonStyleSize(int iconStyleInt); int toolBarBtnIconStyle(); void setToolBtnIconStyle(Qt::ToolButtonStyle iIconStyle, int iIconStyleInt); void clearAllButtons(); Qt::ToolButtonStyle BtnStyle() const; QSize BtnIconSize() const; QSize sizeHint(); QString textConvertion(const QString &iTextStr); private slots: void onCustomContextMenuRequested(QPoint); void onActionTriggered(QAction *iAction); void onExternalActionTriggered(int iconStyleInt); QMenu* createMenu(); private: TopQuickButtonV2 *createQuickBtn(const QVariantMap &iParam); protected: const QScopedPointer<TopQuickToolBarV2Private> d_ptr; private: Q_DISABLE_COPY(TopQuickToolBarV2) Q_DECLARE_PRIVATE(TopQuickToolBarV2) }; #endif // TOPQUICKTOOLBARV2_H