From 4b04982fc9dcb71e977c4688a5ea9e81e8fa20cd Mon Sep 17 00:00:00 2001 From: codeboss <2422523675@qq.com> Date: Sun, 12 Oct 2025 23:21:15 +0800 Subject: [PATCH] =?UTF-8?q?update:=E6=B7=BB=E5=8A=A0mouse=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MapPresent/MapPresent.cpp | 24 ++++++++++++++++++------ MapPresent/MapPresent.h | 11 +++++++---- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/MapPresent/MapPresent.cpp b/MapPresent/MapPresent.cpp index c1acd69..3b8f526 100644 --- a/MapPresent/MapPresent.cpp +++ b/MapPresent/MapPresent.cpp @@ -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); @@ -97,7 +97,7 @@ void MapPresent::paintEvent(QPaintEvent* ev) if (_updated_units.size()) { QPainter pic_painter(&_paint_buffer); - + for (auto idx : _updated_units) { pic_painter.save(); @@ -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) { diff --git a/MapPresent/MapPresent.h b/MapPresent/MapPresent.h index 68e61cc..1d316e2 100644 --- a/MapPresent/MapPresent.h +++ b/MapPresent/MapPresent.h @@ -151,9 +151,11 @@ public: QList 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; };