Files
cbh/ElaWidgetTools/ElaMenu.h
2025-09-20 01:41:33 +08:00

40 lines
1.1 KiB
C++

#ifndef ELAMENU_H
#define ELAMENU_H
#include <QMenu>
#include <QWidget>
#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