update:添加mouse事件

This commit is contained in:
codeboss 2025-10-12 23:21:15 +08:00
parent 6e0edbcbee
commit 4b04982fc9
2 changed files with 25 additions and 10 deletions

View File

@ -18,8 +18,8 @@ MapPresent::MapPresent(QWidget* parent /*= nullptr*/)
auto delegate = new BasicUnitDelegate(this);
_type_present_delegate[delegate->unitType()] = delegate;
connect(this, &MapPresent::mouseOut, delegate, &BasicUnitDelegate::hotClear);
connect(this, &MapPresent::mouseHover, delegate, &BasicUnitDelegate::hotIndexSet);
connect(this, &MapPresent::mouseOutNotify, delegate, &BasicUnitDelegate::hotClear);
connect(this, &MapPresent::mouseHoverNotify, delegate, &BasicUnitDelegate::hotIndexSet);
connect(delegate, &BasicUnitDelegate::updateRequest, [=](const PresentIndex& idx) {
if (idx.isValid() && !_updated_units.contains(idx)) {
_updated_units.append(idx);
@ -137,7 +137,7 @@ void MapPresent::mouseMoveEvent(QMouseEvent* event)
event->accept();
auto index = indexGet(event->pos());
emit mouseHover(index);
emit mouseHoverNotify(index);
}
void MapPresent::enterEvent(QEvent* event)
@ -145,7 +145,7 @@ void MapPresent::enterEvent(QEvent* event)
QWidget::enterEvent(event);
event->accept();
emit mouseIn();
emit mouseInNotify();
}
void MapPresent::leaveEvent(QEvent* event)
@ -153,7 +153,19 @@ void MapPresent::leaveEvent(QEvent* event)
QWidget::leaveEvent(event);
event->accept();
emit mouseOut();
emit mouseOutNotify();
}
void MapPresent::mousePressEvent(QMouseEvent* ev)
{
QWidget::mousePressEvent(ev);
emit this->mousePressNotify(ev);
}
void MapPresent::mouseReleaseEvent(QMouseEvent* ev)
{
QWidget::mouseReleaseEvent(ev);
emit this->mouseReleaseNotify(ev);
}
PresentOption AssumeOpt(PresentIndex index, QRectF rf) {

View File

@ -151,9 +151,11 @@ public:
QList<PresentIndex> siblingsGet(const PresentIndex& center, uint16_t dist = 1) const;
signals:
void mouseIn();
void mouseOut();
void mouseHover(const PresentIndex& unit_index);
void mouseInNotify();
void mouseOutNotify();
void mouseHoverNotify(const PresentIndex& unit_index);
void mousePressNotify(QMouseEvent* ev);
void mouseReleaseNotify(QMouseEvent* ev);
protected:
void paintEvent(QPaintEvent* ev) override;
@ -162,5 +164,6 @@ protected:
void mouseMoveEvent(QMouseEvent* event) override;
void enterEvent(QEvent* event) override;
void leaveEvent(QEvent* event) override;
void mousePressEvent(QMouseEvent* ev) override;
void mouseReleaseEvent(QMouseEvent* ev) override;
};