From 531d5a74c8ce658ffeb0de509eca933221e0df94 Mon Sep 17 00:00:00 2001 From: duanshengchao <519970194@qq.com> Date: Fri, 13 Dec 2024 16:41:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E7=BB=9F=E4=B8=80=E6=97=B6?= =?UTF-8?q?=E9=92=9F=E7=B3=BB=E7=BB=9F=EF=BC=8C=E9=A9=B1=E5=8A=A8TimeLine?= =?UTF-8?q?=E5=92=8C=E5=85=B6=E5=AE=83=E6=95=B0=E6=8D=AE=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=E5=AE=9E=E6=97=B6=E6=95=B0=E6=8D=AE=E9=A9=B1=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/dashboardFrame.h | 5 ++++ include/dateTimeWidget.h | 4 +++ include/global.h | 6 ++++ source/dashboardFrame.cpp | 26 ++++++++++++++++- source/dateTimeWidget.cpp | 50 +++++++++++++++++++++++++------- ui/dateTimeWidget.ui | 6 ++++ util/TimeLine/timeLineWidget.cpp | 4 +-- util/TimeLine/timeLineWidget.h | 2 +- 8 files changed, 88 insertions(+), 15 deletions(-) diff --git a/include/dashboardFrame.h b/include/dashboardFrame.h index 4070a5e..495fbe9 100644 --- a/include/dashboardFrame.h +++ b/include/dashboardFrame.h @@ -10,6 +10,7 @@ class dashboardFrame; } QT_END_NAMESPACE +class QTimer; class TransparentMask; class MessageDialog; class CustomTabBar; @@ -72,6 +73,8 @@ public slots: void onMenuAction_dashboardList(); + void onTimeout_realTime(); + void onSignal_subDialogClose(); void onSignal_renameDashboard(); void onSignal_removeDashboard(); @@ -99,6 +102,8 @@ private: PanelSelectionDialog* m_pPanelSelectionDialog; DateTimeWidget* m_pDateTimeWidget; TimeLineWidget* m_pTimeLineWidget; + + QTimer* m_pTimer_RealTime; }; #endif diff --git a/include/dateTimeWidget.h b/include/dateTimeWidget.h index 0d63077..cd98283 100644 --- a/include/dateTimeWidget.h +++ b/include/dateTimeWidget.h @@ -2,6 +2,7 @@ #define DATETIMEWIDGET_H #include +#include "global.h" QT_BEGIN_NAMESPACE namespace Ui { @@ -19,6 +20,8 @@ public: DateTimeWidget(QWidget *parent = nullptr); ~DateTimeWidget(); + void setDateTime(QDateTime); + protected: bool eventFilter(QObject*, QEvent*); @@ -43,6 +46,7 @@ signals: private: void initialize(); + void setState(DateTimeWidgetState); Ui::dateTimeWidget* ui; QTimer* m_pTimer_RealTime; diff --git a/include/global.h b/include/global.h index 4506c9a..e21714e 100644 --- a/include/global.h +++ b/include/global.h @@ -15,6 +15,12 @@ enum MessageDialogBtn btn_No }; +enum DateTimeWidgetState +{ + realTime, + historical +}; + extern MessageDialogBtn g_msgDlgBtn; #endif diff --git a/source/dashboardFrame.cpp b/source/dashboardFrame.cpp index 91c0ed9..cc44061 100644 --- a/source/dashboardFrame.cpp +++ b/source/dashboardFrame.cpp @@ -14,6 +14,7 @@ #include #include +#include #include #include @@ -44,6 +45,7 @@ DashboardFrame::DashboardFrame(const QString& strName, dashboardFrame::frameType } m_pDateTimeWidget = new DateTimeWidget(this); + m_pDateTimeWidget->setObjectName("dateTimeWidget"); ui->layout_dateTime->addWidget(m_pDateTimeWidget); connect(m_pDateTimeWidget, SIGNAL(showMask()), this, SLOT(onSignal_showMask())); connect(m_pDateTimeWidget, SIGNAL(hideMask()), this, SLOT(onSignal_hideMask())); @@ -55,6 +57,7 @@ DashboardFrame::DashboardFrame(const QString& strName, dashboardFrame::frameType connect(m_pDashboardTabBar, SIGNAL(tabMoved(int, int)), this, SLOT(onSignal_dashboardTabMoved(int, int))); m_pTimeLineWidget = new TimeLineWidget(this); + m_pTimeLineWidget->setObjectName("timeLineWidget"); m_pTimeLineWidget->setBackground(QColor(24, 32, 38)); m_pTimeLineWidget->setTimelineColor(QColor(250, 250, 250)); m_pTimeLineWidget->setTimeScaleSize(200); @@ -64,6 +67,10 @@ DashboardFrame::DashboardFrame(const QString& strName, dashboardFrame::frameType connect(ui->btnAddPanel, SIGNAL(clicked()), this, SLOT(onBtnClicked_addDataPanel())); //connect(ui->btnDashboradList1, SIGNAL(clicked()), this, SLOT(onBtnClicked_dashboardList())); connect(ui->btnDashboradList2, SIGNAL(clicked()), this, SLOT(onBtnClicked_dashboardList())); + + m_pTimer_RealTime = new QTimer(this); + connect(m_pTimer_RealTime, SIGNAL(timeout()), this, SLOT(onTimeout_realTime())); + m_pTimer_RealTime->start(1000); } DashboardFrame::~DashboardFrame() @@ -535,6 +542,13 @@ void DashboardFrame::onMenuAction_dashboardList() setCurrentDashboard(strName); } +void DashboardFrame::onTimeout_realTime() +{ + QDateTime curDateTime = QDateTime::currentDateTime(); + m_pDateTimeWidget->setDateTime(curDateTime); + m_pTimeLineWidget->setDateTime(curDateTime); +} + void DashboardFrame::onSignal_subDialogClose() { hideTransparentMask(); @@ -612,6 +626,16 @@ void DashboardFrame::onSignal_panelSelectResult(const QString& strType) void DashboardFrame::onSignal_viewHistoricalData(QDateTime dateTime) { - qDebug() << "viewHistoricalData: " + dateTime.date().toString("yyyy/MM/dd"); + //qDebug() << "viewHistoricalData: " + dateTime.date().toString("yyyy/MM/dd"); hideTransparentMask(); + + QObject* pObject = QObject::sender(); + if(pObject->objectName() == "dateTimeWidget") + { + + } + else if(pObject->objectName() == "timeLineWidget") + { + + } } diff --git a/source/dateTimeWidget.cpp b/source/dateTimeWidget.cpp index 0d81e1c..d285e80 100644 --- a/source/dateTimeWidget.cpp +++ b/source/dateTimeWidget.cpp @@ -22,8 +22,8 @@ DateTimeWidget::~DateTimeWidget() if(m_pTimer_Range->isActive()) m_pTimer_Range->stop(); - if(m_pTimer_RealTime->isActive()) - m_pTimer_RealTime->stop(); + // if(m_pTimer_RealTime->isActive()) + // m_pTimer_RealTime->stop(); } bool DateTimeWidget::eventFilter(QObject* obj, QEvent* event) @@ -94,17 +94,43 @@ void DateTimeWidget::initialize() m_pTimer_Range = new QTimer(this); connect(m_pTimer_Range, SIGNAL(timeout()), this, SLOT(onTimeout_rangeSelect())); - m_pTimer_RealTime = new QTimer(this); - connect(m_pTimer_RealTime, SIGNAL(timeout()), this, SLOT(onTimeout_realTime())); - m_pTimer_RealTime->start(1000); + // m_pTimer_RealTime = new QTimer(this); + // connect(m_pTimer_RealTime, SIGNAL(timeout()), this, SLOT(onTimeout_realTime())); + // m_pTimer_RealTime->start(1000); m_pSelectionPanel = new DateTimeSelectionPanel(this); connect(m_pSelectionPanel, SIGNAL(selectResults(QDateTime)), this, SLOT(onDateTimeSelectResults(QDateTime))); } +void DateTimeWidget::setState(DateTimeWidgetState state) +{ + if(state == realTime) + { + //m_pTimer_RealTime->start(1000); + ui->stacked_time->setCurrentIndex(0); + } + else if(state == historical) + { + //m_pTimer_RealTime->stop(); + ui->btnHistoricalData->setText(QString::fromWCharArray(L"历史数据")); + ui->stacked_time->setCurrentIndex(1); + } +} + +void DateTimeWidget::setDateTime(QDateTime dateTime) +{ + QString strTime = dateTime.time().toString("HH:mm:ss"); + ui->label_time->setText(strTime); + if(dateTime.time() == QTime(0,0,0)) + { + QString strDate = dateTime.date().toString("yyyy/MM/dd"); + ui->btnDate->setText(strDate); + } +} + void DateTimeWidget::onBtnClicked_historicalData() { - ui->stacked_time->setCurrentIndex(0); + setState(realTime); } void DateTimeWidget::onBtnClicked_realTimeData() { @@ -113,8 +139,7 @@ void DateTimeWidget::onBtnClicked_realTimeData() void DateTimeWidget::onBtnClicked_date() { - ui->btnHistoricalData->setText(QString::fromWCharArray(L"历史数据")); - ui->stacked_time->setCurrentIndex(1); + setState(historical); emit showMask(); QPoint originPoint = ui->btnDate->mapToGlobal(QPoint(0, 0)); @@ -165,8 +190,8 @@ void DateTimeWidget::onTimeout_realTime() ui->label_time->setText(strCurrentTime); if(QTime::currentTime() == QTime(0,0,0)) { - QString strCurrentTime = QTime::currentTime().toString("HH:mm:ss"); - ui->label_time->setText(strCurrentTime); + QString strCurrentDate = QDate::currentDate().toString("yyyy/MM/dd"); + ui->btnDate->setText(strCurrentDate); } } @@ -174,9 +199,12 @@ void DateTimeWidget::onDateTimeSelectResults(QDateTime dateTime) { if(dateTime.date() == QDate::currentDate()) { - ui->stacked_time->setCurrentIndex(0); + setState(realTime); emit hideMask(); } else + { + dateTime.setTime(QTime::currentTime()); emit viewHistoricalData(dateTime); + } } diff --git a/ui/dateTimeWidget.ui b/ui/dateTimeWidget.ui index 20568d9..a57bf38 100644 --- a/ui/dateTimeWidget.ui +++ b/ui/dateTimeWidget.ui @@ -176,6 +176,12 @@ QPushButton:pressed + + QWidget #page_realTimeData +{ +background-color:transparent; +} + 0 diff --git a/util/TimeLine/timeLineWidget.cpp b/util/TimeLine/timeLineWidget.cpp index c13b037..fcb682e 100644 --- a/util/TimeLine/timeLineWidget.cpp +++ b/util/TimeLine/timeLineWidget.cpp @@ -117,8 +117,8 @@ void TimeLineWidget::setTimeScaleSize(int size) d_ptr->m_timeLineItem->setScaleSize(size); } -void TimeLineWidget::setCurrentTime(QDateTime time) +void TimeLineWidget::setDateTime(QDateTime dateTime) { - + d_ptr->m_timeLineItem->setTime(dateTime); } diff --git a/util/TimeLine/timeLineWidget.h b/util/TimeLine/timeLineWidget.h index 2a9c214..2b0759d 100644 --- a/util/TimeLine/timeLineWidget.h +++ b/util/TimeLine/timeLineWidget.h @@ -16,7 +16,7 @@ public: void setBackground(QColor); void setTimelineColor(QColor); void setTimeScaleSize(int); //设置时间刻度大小(像素) - void setCurrentTime(QDateTime); + void setDateTime(QDateTime); protected: virtual void resizeEvent(QResizeEvent*) override;