#ifndef ELAMENU_H #define ELAMENU_H #include #include #include "ElaDef.h" #include "ElaProperty.h" class ElaMenuPrivate; class ELA_EXPORT ElaMenu : public QMenu { Q_OBJECT Q_Q_CREATE(ElaMenu) public: explicit ElaMenu(QWidget *parent = nullptr); explicit ElaMenu(const QString &title, QWidget *parent = nullptr); ~ElaMenu(); void setMenuItemHeight(int menuItemHeight); int getMenuItemHeight() const; QAction *addMenu(QMenu *menu); ElaMenu *addMenu(const QString &title); ElaMenu *addMenu(const QIcon &icon, const QString &title); ElaMenu *addMenu(ElaIconType::IconName icon, const QString &title); QAction *addElaIconAction(ElaIconType::IconName icon, const QString &text); QAction *addElaIconAction(ElaIconType::IconName icon, const QString &text, const QKeySequence &shortcut); bool isHasChildMenu() const; bool isHasIcon() const; Q_SIGNALS: Q_SIGNAL void menuShow(); protected: virtual void showEvent(QShowEvent *event) override; virtual void paintEvent(QPaintEvent *event) override; }; #endif // ELAMENU_H