81 lines
2.9 KiB
C++
81 lines
2.9 KiB
C++
#include "RealTimeAlarm.h"
|
||
#include "ui_RealTimeAlarm.h"
|
||
#include <QPushButton>
|
||
#include "QMyTableViewBtnDelegate.h"
|
||
#include "AlarmDetails.h"
|
||
#include "sqlitedb.h"
|
||
|
||
CRealTimeAlarm::CRealTimeAlarm(QWidget *parent) :
|
||
QWidget(parent),
|
||
ui(new Ui::CRealTimeAlarm)
|
||
{
|
||
ui->setupUi(this);
|
||
ui->widget_alarm->setProperty("flag", "Button");
|
||
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);
|
||
ui->tableView->setColumnWidth(3, 300);
|
||
ui->tableView->setAlternatingRowColors(true);
|
||
|
||
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
|
||
ui->tableView->horizontalHeader()->setSectionResizeMode(0,QHeaderView::ResizeToContents);
|
||
ui->tableView->horizontalHeader()->setSectionResizeMode(4,QHeaderView::ResizeToContents);
|
||
|
||
// 必须要设置此项,否则样式表的hover无法生效
|
||
ui->tableView->setMouseTracking(true);
|
||
|
||
initTable();
|
||
|
||
}
|
||
|
||
CRealTimeAlarm::~CRealTimeAlarm()
|
||
{
|
||
delete ui;
|
||
}
|
||
|
||
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();
|
||
}
|