55 lines
1.3 KiB
C++
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();
|
|
|
|
}
|
|
|
|
|
|
|
|
|