#include "frmuser.h" #include "ui_frmuser.h" #include "dbpage.h" #include "dbquery.h" #include "frmuseradd.h" #include "frmuserfingerselect.h" #include "frmuserfingerin.h" #include "frmmessagebox.h" frmUser::frmUser(QWidget *parent) : QWidget(parent), ui(new Ui::frmUser) { ui->setupUi(this); this->initForm(); this->initTable(); } frmUser::~frmUser() { delete ui; } void frmUser::initForm() { if (AppConfig::MainHeight == 480) { rowCount = 8; ui->widgetNav->setFixedWidth(120); ui->widgetReturn->setFixedWidth(120); } else { rowCount = 11; ui->widgetNav->setFixedWidth(150); ui->widgetReturn->setFixedWidth(150); } //绑定返回按钮按下返回到主界面 connect(ui->btnReturn, SIGNAL(clicked(bool)), this, SIGNAL(returnMain())); //设置属性以便应用样式表 ui->widgetNav->setProperty("flag", "nav"); ui->widgetReturn->setProperty("flag", "return"); //添加子窗体 frmUserAdd *userAdd = new frmUserAdd; connect(userAdd, SIGNAL(returnMain(int)), this, SLOT(returnThis(int))); connect(this, SIGNAL(receiveUserInfo(QString)), userAdd, SLOT(receiveUserInfo(QString))); frmUserFingerSelect *userFingerSelect = new frmUserFingerSelect; connect(userFingerSelect, SIGNAL(returnMain(int)), this, SLOT(returnThis(int))); frmUserFingerIn *userFingerIn = new frmUserFingerIn; connect(userFingerIn, SIGNAL(returnMain(int)), this, SLOT(returnThis(int))); connect(userAdd, SIGNAL(userFinger(QString)), userFingerIn, SLOT(userFinger(QString))); connect(userAdd, SIGNAL(userFinger(QString)), userFingerSelect, SLOT(userFinger(QString))); connect(userFingerSelect, SIGNAL(userHand(int)), userFingerIn, SLOT(userHand(int))); connect(userFingerIn, SIGNAL(fingerFinsh(int)), userFingerSelect, SLOT(fingerFinsh(int))); ui->stackedWidget->addWidget(userAdd); ui->stackedWidget->addWidget(userFingerSelect); ui->stackedWidget->addWidget(userFingerIn); connect(frmMessageBox::Instance(), SIGNAL(result(bool)), this, SLOT(result(bool))); } void frmUser::initTable() { whereSql = "where 1=1"; columnNames.clear(); columnWidths.clear(); columnNames.append("用户编号"); columnNames.append("用户名称"); columnNames.append("用户权限"); columnWidths.append(180); columnWidths.append(180); columnWidths.append(230); //设置需要显示数据的表格和翻页的按钮,加载初始数据 dbPage = new DbPage(this); connect(dbPage, SIGNAL(receivePage(quint32, quint32, quint32, quint32)), this, SLOT(receivePage(quint32, quint32, quint32, quint32))); //设置所有列居中 dbPage->setAllCenter(true); dbPage->setControl(ui->tableMain, 0, 0, 0, 0, 0, 0, ui->btnFirst, ui->btnPre, ui->btnNext, ui->btnLast, "rowid"); ui->btnFirst->setVisible(false); ui->btnLast->setVisible(false); //绑定数据源 QString selectColumn = "UserID,UserName,UserAdmin"; dbPage->setSelectColumn(selectColumn); dbPage->setTableName("UserInfo"); dbPage->setOrderSql("rowid asc"); 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 frmUser::returnThis(int index) { ui->stackedWidget->setCurrentIndex(index); dbPage->select(); DbQuery::loadUserInfo(); } void frmUser::result(bool ok) { if (ok) { QModelIndex index = ui->tableMain->currentIndex(); int row = index.row(); QString userID = index.model()->index(row, 0).data().toString(); DbQuery::deleteUserInfo(userID); dbPage->select(); DbQuery::loadUserInfo(); } } void frmUser::receivePage(quint32 pageCurrent, quint32 pageCount, quint32 resultCount, quint32 resultCurrent) { QString text = QString("第 %1 页 共 %2 页 共 %3 个用户") .arg(pageCurrent).arg(pageCount).arg(resultCount); ui->labInfo->setText(text); } void frmUser::on_btnAdd_clicked() { emit receiveUserInfo(""); returnThis(1); } void frmUser::on_btnDelete_clicked() { int row = ui->tableMain->currentIndex().row(); if (row < 0) { frmMessageBox::Instance()->showInfo("请选择要删除的用户!"); frmMessageBox::Instance()->show(); return; } frmMessageBox::Instance()->showQuestion("确定要删除用户吗?\n删除后不能恢复!"); frmMessageBox::Instance()->show(); } void frmUser::on_btnUpdate_clicked() { QModelIndex index = ui->tableMain->currentIndex(); int row = index.row(); if (row < 0) { frmMessageBox::Instance()->showInfo("请选择要修改的用户!"); frmMessageBox::Instance()->show(); return; } QString userID = index.model()->index(row, 0).data().toString(); emit receiveUserInfo(userID); returnThis(1); }