#include "BaseWidget.h" #include "menu/BaseWidgetMenu.h" #include "BackEnd/MainWidget.h" #include "Global.h" BaseWidget::BaseWidget(QWidget *parent) : QWidget(parent) { // setAttribute(Qt::WA_OpaquePaintEvent); mBaseWidgetMenu = new BaseWidgetMenu(this); mBaseWidgetMenu->setObjectName("属性菜单"); hide(); } void BaseWidget::resizeEvent(QResizeEvent *event) { int baseHeight = (int)((double)height() * 0.2); mBaseWidgetMenu->setGeometry(0, height() - baseHeight, width(), baseHeight); QWidget::resizeEvent(event); } void BaseWidget::reserverMenu() { if(!mBaseWidgetMenu->isVisible()){ QWidget* curWidget = MainWidget::instance()->currentHoverWidget(); if(curWidget) curWidget->hide(); mBaseWidgetMenu->raise(); mBaseWidgetMenu->show(); curWidget = mBaseWidgetMenu; mBaseWidgetMenu->setFocus(); } else { mBaseWidgetMenu->hide(); setFocus(); } } void BaseWidget::keyPressEvent(QKeyEvent *event) { if (event->type() == QEvent::KeyPress) { Global *g = Global::instance(); auto *keyEvent = dynamic_cast(event); //qDebug() << keyEvent; // if(g->match(keyEvent, "属性菜单")){ // reserverMenu(); // event->accept(); // return; // } } event->ignore(); }