3500/RealTimeAlarm.cpp

81 lines
2.9 KiB
C++
Raw Normal View History

2023-04-14 19:30:30 +08:00
#include "RealTimeAlarm.h"
#include "ui_RealTimeAlarm.h"
2023-04-27 19:48:15 +08:00
#include <QPushButton>
#include "QMyTableViewBtnDelegate.h"
#include "AlarmDetails.h"
#include "sqlitedb.h"
2023-04-14 19:30:30 +08:00
CRealTimeAlarm::CRealTimeAlarm(QWidget *parent) :
QWidget(parent),
ui(new Ui::CRealTimeAlarm)
{
ui->setupUi(this);
2023-04-27 19:48:15 +08:00
ui->widget_alarm->setProperty("flag", "Button");
2023-04-14 19:30:30 +08:00
headerStr = QObject::tr("序号,报警级别,报警内容,报警时间,报警详情");
model = new QStandardItemModel(ui->tableView);
ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); //选中行
QStringList headerList = headerStr.split(",");
model->setHorizontalHeaderLabels(headerList);
model->setColumnCount(headerList.size());
ui->tableView->setModel(model);
ui->tableView->setColumnWidth(2, 300);
2023-04-27 19:48:15 +08:00
ui->tableView->setColumnWidth(3, 300);
2023-04-14 19:30:30 +08:00
ui->tableView->setAlternatingRowColors(true);
2023-04-27 19:48:15 +08:00
2023-04-17 17:40:26 +08:00
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
2023-04-14 19:30:30 +08:00
ui->tableView->horizontalHeader()->setSectionResizeMode(0,QHeaderView::ResizeToContents);
ui->tableView->horizontalHeader()->setSectionResizeMode(4,QHeaderView::ResizeToContents);
2023-04-27 19:48:15 +08:00
// 必须要设置此项否则样式表的hover无法生效
ui->tableView->setMouseTracking(true);
initTable();
2023-04-14 19:30:30 +08:00
}
CRealTimeAlarm::~CRealTimeAlarm()
{
delete ui;
}
2023-04-27 19:48:15 +08:00
void CRealTimeAlarm::createRowItem(int Row,QVariantList RowItem)
{
model->setRowCount(Row+1);
for (int j = 0; j < RowItem.size(); ++j)
{
model->setData(model->index(Row,j,QModelIndex()),RowItem.at(j));
}
}
void CRealTimeAlarm::initTable()
{
QString strTableName = "t_TriggerEvent",strSql;
strSql = QString(" triggeredTime <> '' order by triggeredTime limit 0,10");
m_vecTriggerEvent = g_SqliteDB->GetTriggerEvent(strTableName,strSql);
if(m_vecTriggerEvent.size() > 0){
for (int i = 0; i < m_vecTriggerEvent.size(); i++) {
QVariantList strRowItem ;
QString TStr = QDateTime::fromSecsSinceEpoch(m_vecTriggerEvent[i].triggeredTime).toString("yyyy-MM-dd hh:mm:ss");
strRowItem << i + 1 << m_vecTriggerEvent[i].triggeredNotification << m_vecTriggerEvent[i].triggeredFeatureName << TStr;
createRowItem(i,strRowItem);
}
QMyTableViewBtnDelegate *m_btnDelegate = new QMyTableViewBtnDelegate(QStringList()<<"详情", this);
ui->tableView->setItemDelegateForColumn(4, m_btnDelegate);
connect(m_btnDelegate, SIGNAL(editData(const QModelIndex &)), this,SLOT(Details(const QModelIndex &)));
}else{
QMessageBox::information(this, "提示", QString("未查询到数据!"));
}
}
void CRealTimeAlarm::Details(const QModelIndex &index)
{
int row = index.row();
CAlarmDetails *dialog = new CAlarmDetails();
dialog->ViewData(m_vecTriggerEvent[row]);
dialog->setWindowModality(Qt::ApplicationModal);
dialog->show();
}