实现统一时钟系统,驱动TimeLine和其它数据组件的实时数据驱动
This commit is contained in:
parent
5ed47f24c8
commit
531d5a74c8
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define DATETIMEWIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#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;
|
||||
|
|
|
|||
|
|
@ -15,6 +15,12 @@ enum MessageDialogBtn
|
|||
btn_No
|
||||
};
|
||||
|
||||
enum DateTimeWidgetState
|
||||
{
|
||||
realTime,
|
||||
historical
|
||||
};
|
||||
|
||||
extern MessageDialogBtn g_msgDlgBtn;
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include <QKeyEvent>
|
||||
#include <QMenu>
|
||||
#include <QTimer>
|
||||
#include <QDateTime>
|
||||
#include <QMimeData>
|
||||
|
||||
|
|
@ -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")
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -176,6 +176,12 @@ QPushButton:pressed
|
|||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="page_realTimeData">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">QWidget #page_realTimeData
|
||||
{
|
||||
background-color:transparent;
|
||||
}</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="hLayout__realTimeData">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue