From ed64a0378d28b1fc45af4e08f38187f09f633c86 Mon Sep 17 00:00:00 2001 From: duanshengchao <519970194@qq.com> Date: Thu, 23 Oct 2025 20:21:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=AE=8C=E6=88=90=E5=91=8A=E8=AD=A6?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=B8=AD=E6=93=8D=E4=BD=9C=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E7=9A=84=E7=82=B9=E5=87=BB=E5=93=8D=E5=BA=94=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/alarmEventDataView.h | 8 ++++++++ source/alarmEventDataView.cpp | 16 ++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/include/alarmEventDataView.h b/include/alarmEventDataView.h index b36e2af..7716326 100644 --- a/include/alarmEventDataView.h +++ b/include/alarmEventDataView.h @@ -134,6 +134,10 @@ public: void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override; bool editorEvent(QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option, const QModelIndex& index) override; +signals: + void confirmBtnClicked(const QModelIndex& index); + void replayBtnClicked(const QModelIndex& index); + private: struct ControlButton { @@ -168,6 +172,10 @@ public: void setModelMode(AlarmDataMode, int maxRealTimeEvents = 5); +public slots: + void onBtnClicked_Confirm(const QModelIndex& index); + void onBtnClicked_Replay(const QModelIndex& index); + private: QTableView* m_tableView; AlarmEventDataModel* m_tableModel; diff --git a/source/alarmEventDataView.cpp b/source/alarmEventDataView.cpp index 9500b1a..980ae86 100644 --- a/source/alarmEventDataView.cpp +++ b/source/alarmEventDataView.cpp @@ -470,6 +470,10 @@ bool AlarmEventDataDelegate::editorEvent(QEvent* event, QAbstractItemModel* mode else if(mouseEvent->button() == Qt::LeftButton && mouseEvent->type() == QEvent::MouseButtonRelease) { emit m_tableView->model()->dataChanged(index, index); //触发重绘 + if(m_btnConfirm.rect.contains(m_mousePositon)) + emit confirmBtnClicked(index); + else if(m_btnReplay.rect.contains(m_mousePositon)) + emit replayBtnClicked(index); } } @@ -501,6 +505,8 @@ AlarmEventDataView::AlarmEventDataView(QWidget* parent) } m_delegate = new AlarmEventDataDelegate(m_tableView, this); + connect(m_delegate, &AlarmEventDataDelegate::confirmBtnClicked, this, &AlarmEventDataView::onBtnClicked_Confirm); + connect(m_delegate, &AlarmEventDataDelegate::replayBtnClicked, this, &AlarmEventDataView::onBtnClicked_Replay); m_tableView->setItemDelegate(m_delegate); m_vLayout = new QVBoxLayout(this); @@ -522,3 +528,13 @@ void AlarmEventDataView::setModelMode(AlarmDataMode mode, int maxRealTimeEvents) m_tableModel->setMaxRealTimeEvents(maxRealTimeEvents); } } + +void AlarmEventDataView::onBtnClicked_Confirm(const QModelIndex& index) +{ + qDebug() << QString("confirmBtnClicked, row: %1").arg(index.row()); +} + +void AlarmEventDataView::onBtnClicked_Replay(const QModelIndex& index) +{ + qDebug() << QString("replayBtnClicked, row: %1").arg(index.row()); +}