#include "HistoryAlarm.h" #include "ui_HistoryAlarm.h" #include #include "sqlitedb.h" #include "QMyTableViewBtnDelegate.h" #include "AlarmDetails.h" CHistoryAlarm::CHistoryAlarm(QWidget *parent) : QWidget(parent), ui(new Ui::CHistoryAlarm) { ui->setupUi(this); 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->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive); ui->tableView->setColumnWidth(2, 300); ui->tableView->setColumnWidth(3, 300); ui->tableView->setColumnWidth(4, 300); ui->tableView->setAlternatingRowColors(true); ui->tableView->horizontalHeader()->setSectionResizeMode(0,QHeaderView::ResizeToContents); ui->tableView->horizontalHeader()->setSectionResizeMode(5,QHeaderView::ResizeToContents); ui->dateTimeEdit_start->setCalendarPopup(true); ui->dateTimeEdit_end->setCalendarPopup(true); QDateTime curDateTime=QDateTime::currentDateTime();//通过QDateTime的currentDateTime获得当前的日期时间,并赋值给curDateTime ui->dateTimeEdit_start->setDateTime(curDateTime); ui->dateTimeEdit_end->setDateTime(curDateTime); ui->comboBox_channel->setView(new QListView()); connect(ui->comboBox_channel,SIGNAL(currentIndexChanged(const QString &)),this,SLOT(on_comboBox_channel_currentTextChanged(const QString&))); for (int i = 0; i < g_ChannelBaseInfo.size(); i++) { ui->comboBox_channel->insertItem(i,g_ChannelBaseInfo[i].channelName); } } CHistoryAlarm::~CHistoryAlarm() { delete ui; } void CHistoryAlarm::on_comboBox_channel_currentTextChanged(const QString& strChannelName) { int i = 0; for (i = 0; i < g_ChannelBaseInfo.size(); i++) { if(strChannelName == g_ChannelBaseInfo[i].channelName){ m_strChannelID = g_ChannelBaseInfo[i].channelID; break; } } } void CHistoryAlarm::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 CHistoryAlarm::on_pushButton_search_clicked() { model->removeRows(0, model->rowCount()); QDateTime dateTimeStart =ui->dateTimeEdit_start->dateTime(); QDateTime dateTimeEnd =ui->dateTimeEdit_end->dateTime(); int timestampStart = dateTimeStart.toTime_t(); int timestampEnd = dateTimeEnd.toTime_t(); QString strTableName = "t_TriggerEvent",strSql; strSql = QString(" triggeredTime > %1 and triggeredTime < %2 order by triggeredTime ").arg(timestampStart).arg(timestampEnd); 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(5, m_btnDelegate); connect(m_btnDelegate, SIGNAL(editData(const QModelIndex &)), this,SLOT(Details(const QModelIndex &))); }else{ QMessageBox::information(this, "提示", QString("未查询到数据!")); } } void CHistoryAlarm::Details(const QModelIndex &index) { int row = index.row(); CAlarmDetails *dialog = new CAlarmDetails(); dialog->ViewData(m_vecTriggerEvent[row]); dialog->setWindowModality(Qt::ApplicationModal); dialog->show(); }