From 7d1e06bda9566c1646f24b9fa0cd55bd9151da16 Mon Sep 17 00:00:00 2001 From: duanshengchao <519970194@qq.com> Date: Mon, 17 Nov 2025 10:13:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E6=B5=8F=E7=AA=97=E5=8F=A3=E4=B8=AD=E2=80=98?= =?UTF-8?q?QDateTimeEdit=E7=9A=84upButton=E6=97=A0=E6=B3=95=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E9=97=AE=E9=A2=98=E2=80=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/alarmEventMainDialog.h | 4 + include/alarmEventUtils.h | 1 + include/customLineEdit.h | 2 +- resource/PowerMaster.qrc | 1 + resource/images/up-arrow.png | Bin 0 -> 788 bytes source/alarmEventDataView.cpp | 10 +- source/alarmEventMainDialog.cpp | 4 + source/alarmEventUtils.cpp | 44 ++++---- source/customLineEdit.cpp | 4 +- ui/alarmEventMainDialog.ui | 181 ++++++++++++-------------------- ui/alarmEventRealTimeDock.ui | 2 +- 11 files changed, 109 insertions(+), 144 deletions(-) create mode 100644 resource/images/up-arrow.png diff --git a/include/alarmEventMainDialog.h b/include/alarmEventMainDialog.h index 161d2f7..3cadded 100644 --- a/include/alarmEventMainDialog.h +++ b/include/alarmEventMainDialog.h @@ -3,6 +3,7 @@ #include #include "alarmEventGlobal.h" +#include "alarmEventUtils.h" QT_BEGIN_NAMESPACE namespace Ui { @@ -10,6 +11,7 @@ class alarmEventMainDialog; } QT_END_NAMESPACE +class AlarmEventDataView; class AlarmEventMainDialog : public QDialog { Q_OBJECT @@ -31,7 +33,9 @@ public slots: private: Ui::alarmEventMainDialog* ui; + AlarmEventDataView* m_tableView; AlarmDataMode m_mode; + AlarmEventDataFilter m_eventFilter; }; diff --git a/include/alarmEventUtils.h b/include/alarmEventUtils.h index 94b0ad1..73abda7 100644 --- a/include/alarmEventUtils.h +++ b/include/alarmEventUtils.h @@ -225,6 +225,7 @@ public: QVector apply(const QVector& events); private: + void reset(); bool isEmpty(); QDateTime m_startTime; diff --git a/include/customLineEdit.h b/include/customLineEdit.h index cbfd515..8a82b93 100644 --- a/include/customLineEdit.h +++ b/include/customLineEdit.h @@ -20,7 +20,7 @@ signals: void clicked(); protected: - void mousePressEvent(QMouseEvent* event) override; + void mouseDoubleClickEvent(QMouseEvent* event) override; }; #endif diff --git a/resource/PowerMaster.qrc b/resource/PowerMaster.qrc index b3fed37..1e5dd44 100644 --- a/resource/PowerMaster.qrc +++ b/resource/PowerMaster.qrc @@ -7,6 +7,7 @@ images/icon_doubleArrow_down_hover.png images/icon_doubleArrow_up_default.png images/icon_doubleArrow_up_hover.png + images/up-arrow.png images/icon_first.png images/icon_last.png images/icon_next.png diff --git a/resource/images/up-arrow.png b/resource/images/up-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..96973129613f61dbc99880e7404b7c2fa69f5ecb GIT binary patch literal 788 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=G_YAk0{w5#8IXksPAt^OIGtXB2{qFth3YjUk>fxro2EGN(sTr9bRYj@6RemAKRoTgwDeCri zyj(UFRzMSSQ%e#RDspr3imfVamB0pD0ofp7eI+}aqLehNAQv~N3Lwu`DWjyMz)D}g zyu4hm+*mKaC|%#s($Z4jz)0W7NEfI=x41H|B(Xv_uUHvsfJi^MBT&`V?*5(W8)NaQ$q`*G{Yn%sP!e8 zX$brCilM;(3=n;gjJ~0s0m#W9wv~TTW-8DXAS>+*ZNTyW0Q4nE!;C{Gh+uC07f=N4DE_Uzy z5|H&u*5vX>2DK%gij`|-vG173;_0?9RZOkMyW;8p#K4ACtIQmZ@Coj&uyq&KUveqx zyNijy#RXg6J^mY_6X(&`G1u@JD+3<`!?jzJ4WF&cy?wsooBmDx54E4e87wTGyFI^i z!{jXQ^FNhmy;DRTj`VfRlSr=4e#fbsJmp4;_^1U?8 z&wtkBaXPX(Azvr%(e@7s&x}-q4()xUT6Ab{lIpdV>e=2ooZrKyYY4teovtDIPIbC~ z)0-tz+?P(793*%B&((7mqrN}9>C_Qx!_2@CbgDhbyq{J7qs05a1>0g7r`zmawd&RX ZUrg7#COhQ6dt(Ypnx3wHF6*2UngB!fCK~_% literal 0 HcmV?d00001 diff --git a/source/alarmEventDataView.cpp b/source/alarmEventDataView.cpp index 48780f9..a61dadb 100644 --- a/source/alarmEventDataView.cpp +++ b/source/alarmEventDataView.cpp @@ -36,9 +36,9 @@ AlarmEventDataModel::AlarmEventDataModel(AlarmDataMode mode, QObject* parent) //实时数据测试 - /*m_simulatedDataTimer = new QTimer(this); + m_simulatedDataTimer = new QTimer(this); connect(m_simulatedDataTimer, &QTimer::timeout, this, &AlarmEventDataModel::onTimeoutSimulateData); - m_simulatedDataTimer->start(3000);*/ + m_simulatedDataTimer->start(3000); } AlarmEventDataModel::~AlarmEventDataModel() @@ -173,10 +173,10 @@ void AlarmEventDataModel::iniHeaderData() m_headerData.emplace_back(SectionData("厂站", 200, Station)); m_headerData.emplace_back(SectionData("间隔", 200, Bay)); m_headerData.emplace_back(SectionData("信息", -1, Description)); - m_headerData.emplace_back(SectionData("类型", 150, Type)); - m_headerData.emplace_back(SectionData("等级", 150, Severity)); + m_headerData.emplace_back(SectionData("类型", 160, Type)); + m_headerData.emplace_back(SectionData("等级", 160, Severity)); m_headerData.emplace_back(SectionData("确认状态", 150, Status)); - m_headerData.emplace_back(SectionData("操作", 172, Operation)); + m_headerData.emplace_back(SectionData("操作", 180, Operation)); } /*void AlarmEventDataModel::setMode(AlarmDataMode mode) diff --git a/source/alarmEventMainDialog.cpp b/source/alarmEventMainDialog.cpp index e95d5f0..10279d2 100644 --- a/source/alarmEventMainDialog.cpp +++ b/source/alarmEventMainDialog.cpp @@ -1,5 +1,6 @@ #include "alarmEventMainDialog.h" #include "ui_alarmEventMainDialog.h" +#include "alarmEventDataView.h" AlarmEventMainDialog::AlarmEventMainDialog(QWidget *parent) : QDialog(parent) @@ -10,6 +11,9 @@ AlarmEventMainDialog::AlarmEventMainDialog(QWidget *parent) setWindowFlags(Qt::FramelessWindowHint); setAttribute(Qt::WA_TranslucentBackground); + m_tableView = new AlarmEventDataView(Historical, this); + ui->tableLayout->addWidget(m_tableView); + connect(ui->btnClose, &QPushButton::clicked, this, &AlarmEventMainDialog::onBtnClicked_close); } diff --git a/source/alarmEventUtils.cpp b/source/alarmEventUtils.cpp index 8eeb541..f31fe82 100644 --- a/source/alarmEventUtils.cpp +++ b/source/alarmEventUtils.cpp @@ -3,10 +3,33 @@ ///////------AlarmEventDataFilter----- AlarmEventDataFilter::AlarmEventDataFilter() { + reset(); +} + +void AlarmEventDataFilter::reset() +{ + m_startTime = QDateTime(); + m_endTime = QDateTime(); + m_station.clear(); + m_bay.clear(); m_type = -1; + m_severity.clear(); + m_description.clear(); m_status = -1; } +bool AlarmEventDataFilter::isEmpty() +{ + return !m_startTime.isValid() && + !m_endTime.isValid() && + m_station.isEmpty() && + m_bay.isEmpty() && + m_type == -1 && + m_severity.isEmpty() && + m_description.isEmpty() && + m_status == -1; +} + bool AlarmEventDataFilter::matches(const EventData& event) { QDateTime eventTime = QDateTime::fromMSecsSinceEpoch(event.timestamp); @@ -38,14 +61,7 @@ bool AlarmEventDataFilter::matches(const EventData& event) void AlarmEventDataFilter::clear() { - m_startTime = QDateTime(); - m_endTime = QDateTime(); - m_station.clear(); - m_bay.clear(); - m_type = -1; - m_severity.clear(); - m_description.clear(); - m_status = -1; + reset(); } QVector AlarmEventDataFilter::apply(const QVector& events) @@ -65,18 +81,6 @@ QVector AlarmEventDataFilter::apply(const QVector& events) return filteredEvents; //RVO + QT的隐式共享(QVector),不用担心开销 } -bool AlarmEventDataFilter::isEmpty() -{ - return !m_startTime.isValid() && - !m_endTime.isValid() && - m_station.isEmpty() && - m_bay.isEmpty() && - m_type == -1 && - m_severity.isEmpty() && - m_description.isEmpty() && - m_status == -1; -} - ///////------AlarmEventDataFilter----- AlarmEventCache::AlarmEventCache() diff --git a/source/customLineEdit.cpp b/source/customLineEdit.cpp index 3b527b5..e7d354d 100644 --- a/source/customLineEdit.cpp +++ b/source/customLineEdit.cpp @@ -5,10 +5,10 @@ CustomLineEdit::CustomLineEdit(QWidget* parent) : QLineEdit(parent) {} -void CustomLineEdit::mousePressEvent(QMouseEvent* event) +void CustomLineEdit::mouseDoubleClickEvent(QMouseEvent* event) { if(event->button() == Qt::LeftButton) emit clicked(); - QLineEdit::mousePressEvent(event); + QLineEdit::mouseDoubleClickEvent(event); } diff --git a/ui/alarmEventMainDialog.ui b/ui/alarmEventMainDialog.ui index c8dc018..3d19009 100644 --- a/ui/alarmEventMainDialog.ui +++ b/ui/alarmEventMainDialog.ui @@ -56,6 +56,48 @@ QLineEdit:focus border:1px solid rgb(67,160,249); } +QDateTimeEdit +{ +font: 12pt "黑体"; +color: rgb(250, 250, 250); +background-color: rgb(24, 32, 38); +border:1px solid rgb(200,200,200); +padding-right:25px; +} +QDateTimeEdit:focus +{ +border:1px solid rgb(67,160,249); +} +QDateTimeEdit::up-button +{ +border: 0px; +margin:2px; +} +QDateTimeEdit::up-button:hover +{ +background-color: rgb(54, 62, 74); +} +QDateTimeEdit::up-arrow +{ +margin-top:5px; +width:14px; +image: url(:/images/up-arrow.png); +} +QDateTimeEdit::down-button +{ +border: 0px; +margin:2px; +} +QDateTimeEdit::down-button:hover +{ +background-color: rgb(54, 62, 74); +} +QDateTimeEdit::down-arrow +{ +width:14px; +image: url(:/images/down-arrow.png); +} + QComboBox { font: 12pt "黑体"; @@ -570,28 +612,6 @@ icon: url(:/images/icon_configuration.png); - - - - - 0 - 31 - - - - - 16777215 - 31 - - - - 2025/09/16 10:06:12 - - - true - - - @@ -611,8 +631,8 @@ icon: url(:/images/icon_configuration.png); - - + + 0 @@ -625,11 +645,27 @@ icon: url(:/images/icon_configuration.png); 31 - - 2025/09/16 10:07:12 + + yyyy/MM/dd H:mm - - true + + + + + + + 0 + 31 + + + + + 16777215 + 31 + + + + yyyy/MM/dd H:mm @@ -639,7 +675,7 @@ icon: url(:/images/icon_configuration.png); - + QWidget #tableView { @@ -682,88 +718,10 @@ QTableView::item:selected { } - + 15 - - - - Qt::TextElideMode::ElideNone - - - false - - - false - - - - 新建行 - - - - - 新建行 - - - - - 新建行 - - - - - 序号 - - - - - 时间 - - - - - 厂站 - - - - - 详情 - - - - - 类型 - - - - - 级别 - - - - - 操作 - - - - - 1 - - - - - 2025-09-17 16:51:01 - - - - - 灵州换流站 - - - - @@ -1074,13 +1032,6 @@ QPushButton:pressed - - - CustomLineEdit - QLineEdit -
customLineEdit.h
-
-
diff --git a/ui/alarmEventRealTimeDock.ui b/ui/alarmEventRealTimeDock.ui index 6dcdba7..01f1e4a 100644 --- a/ui/alarmEventRealTimeDock.ui +++ b/ui/alarmEventRealTimeDock.ui @@ -582,7 +582,7 @@ QTableView::item:selected 0 - + 0