1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #include "ToolMenuWidget.h"
- #include "UIObject.h"
- #include <QWidgetAction>
- ToolMenu::ToolMenu(QWidget *parent) : QMenu(parent) { }
- void ToolMenu::showEvent(QShowEvent *event)
- {
- QMenu::showEvent(event);
- emit windowStateChanged(true);
- }
- void ToolMenu::hideEvent(QHideEvent *event)
- {
- QMenu::hideEvent(event);
- emit windowStateChanged(false);
- }
- ToolMenuWidget::ToolMenuWidget(QWidget *parent) : QToolButton(parent)
- {
- setCursor(Qt::PointingHandCursor);
- m_menu = new ToolMenu(this);
- QWidgetAction *actionWidget = new QWidgetAction(m_menu);
- m_containWidget = new QWidget(m_menu);
- actionWidget->setDefaultWidget(m_containWidget);
- m_menu->addAction(actionWidget);
- connect(this, &ToolMenuWidget::clicked, this, &ToolMenuWidget::popupMenu);
- }
- ToolMenuWidget::~ToolMenuWidget()
- {
- delete m_containWidget;
- delete m_menu;
- }
- void ToolMenuWidget::setTranslucentBackground()
- {
- m_menu->setWindowFlags(m_menu->windowFlags() | Qt::FramelessWindowHint);
- m_menu->setAttribute(Qt::WA_TranslucentBackground);
- // m_menu->setStyleSheet(UIObject::MQSSMenuStyle03);
- }
- void ToolMenuWidget::popupMenu()
- {
- QPoint pos = mapToGlobal(QPoint(0, 0));
- pos.setY(pos.y() + 20);
- pos.setX(pos.x() - (m_containWidget->width() - width()) / 2);
- m_menu->exec(pos);
- }
|