#include "frmlog.h" #include "ui_frmlog.h" #include "dbpage.h" #include "dbquery.h" frmLog::frmLog(QWidget *parent) : QWidget(parent), ui(new Ui::frmLog) { ui->setupUi(this); this->initForm(); this->initTable(); this->test(); } frmLog::~frmLog() { delete ui; } void frmLog::showEvent(QShowEvent *) { //每次显示界面都选中第一个 ui->btnLog1->click(); } void frmLog::test() { //模拟测试数据 QStringList content; int type = rand() % 4; QString str; if (type == 0) { str = "管理日志"; content << "进入查看日志界面" << "删除测试用户成功" << "修改用户成功" << "修改测试成功" << "添加用户成功"; } else if (type == 1) { str = "开柜日志"; content << "用户开柜成功" << "用户取钱" << "用户关柜" << "用户开柜失败" << "用户密码错误"; } else if (type == 2) { str = "报警日志"; content << "震动报警" << "市电掉电" << "金属误入插入" << "温度报警" << "非法开门"; } else if (type == 3) { str = "物资管理日志"; content << "物资管理日志1" << "物资管理日志2" << "物资管理日志3" << "物资管理日志4" << "物资管理日志5"; } QSqlDatabase::database().transaction(); for (int i = 0; i < 10; i++) { DbQuery::addLogInfo(str, content.at(rand() % 5)); } QSqlDatabase::database().commit(); } void frmLog::initForm() { if (AppConfig::MainHeight == 480) { rowCount = 7; } else { rowCount = 10; } //绑定返回按钮按下返回到主界面 connect(ui->btnReturn, SIGNAL(clicked(bool)), this, SIGNAL(returnMain())); //设置属性以便应用样式表 ui->widgetNav->setProperty("flag", "nav"); ui->widgetTop->setProperty("flag", "navtop"); //绑定顶部导航按钮 QList btns = ui->widgetTop->findChildren(); foreach (QPushButton *btn, btns) { btn->setCheckable(true); connect(btn, SIGNAL(clicked(bool)), this, SLOT(buttonClick())); } } void frmLog::initTable() { whereSql = "where 1=1"; columnNames.clear(); columnWidths.clear(); columnNames.append("日期"); columnNames.append("时间"); columnNames.append("事件"); columnWidths.append(200); columnWidths.append(180); columnWidths.append(250); //设置需要显示数据的表格和翻页的按钮,加载初始数据 dbPage = new DbPage(this); //设置所有列居中 dbPage->setAllCenter(true); dbPage->setControl(ui->tableMain, ui->labPageCurrent, ui->labPageCount, 0, 0, 0, 0, ui->btnFirst, ui->btnPre, ui->btnNext, ui->btnLast, "rowid"); //绑定数据源 QString selectColumn = "LogDate,LogTime,LogContent"; dbPage->setSelectColumn(selectColumn); dbPage->setTableName("LogInfo"); dbPage->setOrderSql("rowid desc"); dbPage->setWhereSql(whereSql); dbPage->setRecordsPerpage(rowCount); dbPage->setColumnNames(columnNames); dbPage->setColumnWidths(columnWidths); dbPage->select(); //最后一列自动填充 ui->tableMain->horizontalHeader()->setMinimumHeight(40); ui->tableMain->verticalHeader()->setDefaultSectionSize(39); ui->tableMain->setAlternatingRowColors(true); ui->tableMain->verticalHeader()->setVisible(false); ui->tableMain->horizontalHeader()->setStretchLastSection(true); } void frmLog::buttonClick() { QPushButton *b = (QPushButton *)sender(); QList btns = ui->widgetTop->findChildren(); //改变选中按钮 foreach (QPushButton *btn, btns) { btn->setChecked(btn == b); } //切换到对应界面 if (b == ui->btnLog1) { whereSql = "where logType='管理日志'"; } else if (b == ui->btnLog2) { whereSql = "where logType='开柜日志'"; } else if (b == ui->btnLog3) { whereSql = "where logType='报警日志'"; } else if (b == ui->btnLog4) { whereSql = "where logType='物资管理日志'"; } dbPage->setWhereSql(whereSql); dbPage->select(); }