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 0000000..9697312 Binary files /dev/null and b/resource/images/up-arrow.png differ 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