Newer
Older
SurgeTankControl / loginform.cpp
[wangxitong] on 27 Jan 2022 2 KB first commit
#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);
}