qt实现汽车销售管理系统(一)-- 登录界面的实现

实现思路

运行程序–>登录界面–>验证用户名和密码–>进入主界面
汽车销售管理系统功能

数据库设计

在这里插入图片描述

数据库的实现

创建一个cardb数据库,并使用该数据库

create database cardb;
use cardb;

创建用户表(user),并往里面插入数据

create table user(
							id int NOT NULL AUTO_INCREMENT primary key,
							user varchar(20),
							pwd varchar(20)
							);

insert into user(user,pwd) values('tom','tom');
insert into user(user,pwd) values('djx','djx');
insert into user(user,pwd) values('xiu','xiu');

创建厂商表(factory),并插入数据

create table factory(id int not null auto_increment primary key, 
								name varchar(255)
								)ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into factory(name) values('大众'); 
insert into factory(name) values('华晨宝马');
insert into factory(name) values('东风日产');
insert into factory(name) values('林肯');

创建品牌表(brand),并插入数据

create table brand(id int not null auto_increment primary key,
								name varchar(255),fname varchar(255),
								color varchar(255),price int not null,
								sum int not null,sell int not null,
								last int not null
								)ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into brand(name,fname,color,price,sum,sell,last) values('甲壳虫','大众','白色',20,520,250,270);
 insert into brand(name,fname,color,price,sum,sell,last) values('奥迪A6','大众','金色',20,520,250,270);
 insert into brand(name,fname,color,price,sum,sell,last) values('宝马X3','华晨宝马','白色',35,520,250,270);
insert into brand(name,fname,color,price,sum,sell,last) values('宝马X4','华晨宝马',' 金色,35,520,250,270);
insert into brand(name,fname,color,price,sum,sell,last) values('贵士','东风日产','金色',20,520,250,270);
insert into brand(name,fname,color,price,sum,sell,last) values('林肯MKC','林肯','白色',36,520,250,270);

登录界面的实现

登录界面如下所示:

  1. 链接数据库
bool login::connectDB(){
    m_db = QSqlDatabase::addDatabase("QMYSQL");
    //设置链接数据库的主机名,数据库名,用户名和密码
    m_db.setHostName("127.0.0.1");
    m_db.setDatabaseName("cardb");
    m_db.setUserName("djx");
    m_db.setPassword("111");
    if(m_db.open() == false){
        QMessageBox::critical(this,"ERROR","链接数据库失败");
        return false;
    }
    return true;
}
  1. 登录按钮槽函数的实现
void login::on_ulogin_clicked()
{
	/*
	1.从编辑框中获取用户输入的用户名和密码
	2.检测用户名和密码是否为空
	3.利用select pwd form user where user = (用户输入的用户名)来查询用户的密码
	4.如果密码正确,则将用户名和密码写入到配置文件中
	*/
    name = ui->name->text();
    pwd = ui->pwd->text();
    if(name.isEmpty()){
        QMessageBox::warning(this,"WARNING","用户名不能为空");
        return;
    }
    if(name.isEmpty()){
        QMessageBox::warning(this,"WARNING","密码不能为空");
        return;
    }
    bool flag = false;
    QSqlQuery query;
    QString sql = QString("select pwd from user where user = '%1'").arg(name);
    query.exec(sql);
    while(query.next()){
        if(pwd == query.value(0).toString()){
            flag = true;
            break;
        }
    }
    if(flag){
        WriteInit("username",name);
        WriteInit("password",pwd);
        QDialog::accept();
    }else {
        QMessageBox::critical(this,"ERROR","用户名或密码错误");
        return;
    }

}

  1. 写配置文件的函数
//将用户名和密码写入到配置文件中
void login::WriteInit(QString key, QString value){
    QString path="login.ini";
    QSettings *config = new QSettings(path,QSettings::IniFormat);
    QVariant variant;
    variant.setValue(value);
    //将信息写入到配置文件中
    config->beginGroup("config");
    config->setValue(key,variant);
    config->endGroup();
    delete config;
}

  1. 退出按钮的槽函数
void login::on_quit_clicked()
{
    QDialog::reject();
}
  1. 在main函数中判断,如果登录成功,显示主页面。如果是关闭,则终止程序
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    login l;
    if(l.exec() == QDialog::Accepted){
        MainWindow w;
        w.show();

        return a.exec();

    }else {
        return 0;
    }
}
  1. 在主界面函数中读配置文件(读出登录时候写入配置文件的用户名和密码)
void MainWindow::ReadInit(QString key, QString &value){
    value.clear();
    QString path = "login.ini";
    QSettings *config = new QSettings(path,QSettings::IniFormat);
    //读取配置信息
    QVariant variant = config->value(QString("config/")+key);
    value=variant.value<QString>();
    delete config;
}
//从配置文件中读取用户名和密码
void MainWindow::loadcfg(){
    ReadInit("username",username);
    ReadInit("password",passwd);
    qDebug() << username << passwd;

}

猜你喜欢

转载自blog.csdn.net/xiuxiu__deng/article/details/88641455