Files
Radio/module/radio/BaseWidget.cpp
T
2026-06-16 13:38:08 +08:00

55 lines
1.3 KiB
C++

#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<QKeyEvent *>(event);
//qDebug() << keyEvent;
// if(g->match(keyEvent, "属性菜单")){
// reserverMenu();
// event->accept();
// return;
// }
}
event->ignore();
}