#include "loginform.h" #include "ui_loginform.h" #include <QMessageBox> #include <QSqlDatabase> #include <QSqlError> #include <QDebug> #include <QSqlQuery> #include <QSqlRecord> #include <mainwindow.h> #include <QDate> #include <QProcess> #include <QDebug> #include <QDesktopServices> #include <QUrl> #include <Windows.h> #pragma comment(lib, "user32.lib") static QSqlDatabase db; LoginForm::LoginForm(QWidget *parent) : QWidget(parent), ui(new Ui::LoginForm) { ui->setupUi(this); ui->username->installEventFilter(this); ui->password->installEventFilter(this); ui->login->installEventFilter(this); ui->password->setEchoMode(QLineEdit::Password); } LoginForm::~LoginForm() { delete ui; } void LoginForm::on_login_clicked() { if(ui->username->text()==""){ QMessageBox::critical(0, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("请填写用户名!")); return; } if(ui->password->text()==""){ QMessageBox::critical(0, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("请填写密码!")); return; } db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("127.0.0.1"); db.setDatabaseName("brtyx"); db.setPort(3306); db.setUserName("root"); db.setPassword("123456"); bool ok = db.open(); if(ok){ QSqlQuery query( QString("select * from user where username ='%1' and password ='%2'").arg(ui->username->text()).arg(ui->password->text())); QSqlRecord rec = query.record(); if(!query.next()){ QMessageBox::critical(0, QString::fromLocal8Bit("提示"), QString::fromLocal8Bit("请核对用户名密码!")); return; }else{ QString str = QString::fromLocal8Bit("INSERT INTO loginlog (personId, logintime) VALUES ('%1', '%2')") .arg(query.value("id").toString()) .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")); qDebug()<<str; QSqlQuery query1(str); MainWindow *w = new MainWindow(query.value("id").toString(),query.value("username").toString()); w->show(); this->close(); return; } } } //事件过滤器 bool LoginForm::eventFilter(QObject *watched, QEvent *event) { if(watched==ui->username && event->type()==QEvent::MouseButtonPress){ ui->username->setFocus(); int pInt = QProcess::execute("taskkill /im osk.exe /f"); QDesktopServices::openUrl(QUrl("osk.exe", QUrl::TolerantMode)); }else if(watched==ui->password && event->type()==QEvent::MouseButtonPress){ ui->password->setFocus(); int pInt = QProcess::execute("taskkill /im osk.exe /f"); QDesktopServices::openUrl(QUrl("osk.exe", QUrl::TolerantMode)); }else if(watched==ui->login && event->type()==QEvent::MouseButtonPress){ int pInt = QProcess::execute("taskkill /im osk.exe /f"); } return QWidget::eventFilter(watched,event); }