qt实现汽车销售管理系统(三)--新车入库、修改密码和退出的实现

1.新车入库

新车入库ui界面设计
在这里插入图片描述运行时新车入库界面
在这里插入图片描述
代码实现

void MainWindow::initNewCar(){
    //实例化model
    model = new QSqlTableModel(this);
    //将model设置到tableView视图中
    ui->tableView->setModel(model);
    //设置model的提交方式为手动提交
    model->setEditStrategy(QSqlTableModel::OnManualSubmit);

    //在model中设置数据库表
    model->setTable("brand");
    model->select();
    
    //在model中添加新纪录
    QSqlRecord record = model->record();  //获取model空记录
    int rows = model->rowCount();   //获取model的行数
    model->insertRecord(rows,record);


   //点击提交按钮的时候,将在视图中修改的数据,手动提交到数据库中
    //点击revert按钮的时候,撤回在视图中修改的数据
}

提交按钮和revert按钮的代码实现

void MainWindow::on_commit_clicked()
{
    model->submitAll();
}

void MainWindow::on_revert_clicked()
{
    model->revertAll();
    model->submitAll();

}

2.修改密码功能的实现

自定义一个类继承QDialog,里面的布局如下
在这里插入图片描述
在修改密码类中,点击确定,首先检查编辑框中是否为空,然后检查两次输入的密码是否一致,一致就将原密码和新密码,以信号的方式发送给主界面

代码实现

void reSetPwd::on_rpwd_ok_clicked()
{
    o_pwd = ui->o_pwd->text();
    n_pwd = ui->n_pwd->text();
    QString rn_pwd = ui->rn_pwd->text();
    if(o_pwd.isEmpty() || n_pwd.isEmpty() || rn_pwd.isEmpty()){
        QMessageBox::critical(this,"错误","密码不能为空");
        return;
    }
    if(n_pwd != rn_pwd){
        QMessageBox::critical(this,"错误","两次输入的新密码不一致");
        return;
    }
    emit sigpwd(o_pwd,n_pwd);
}

点击取消按钮时候,关闭修改密码的界面

void reSetPwd::on_rpwd_cancel_clicked()
{

    this->close();
}

在主界面中,点击修改密码就初始化一个修改密码的类,并处理修改密码类发送来的信号

void MainWindow::initResetPwd(){
    connect(ui->reset_pwd,&QAction::triggered,this,[=](){
        rpwd = new reSetPwd(this);
        rpwd->show();
        connect(rpwd,&reSetPwd::sigpwd,this,&MainWindow::slotpwd);
    });
}

主界面接受修改密码发送来的原密码和新密码,判断原密码与自己存储的是否一致,如果一致,就将修改的新密码提交到数据库中,否则,提示错误

void MainWindow::slotpwd(QString o_pwd, QString n_pwd){
    if(o_pwd == passwd){
        QSqlQuery query;
        QString sql = QString("update user set pwd = '%2' where user = '%1'").arg(username).arg(n_pwd);
        query.exec(sql);
        QSqlDatabase::database().commit();
        passwd = n_pwd;
        qDebug() << passwd;
        delete rpwd;
    }else {
        QMessageBox::critical(this,"错误","您输入的原密码错误");
        return;

    }
}

3.退出功能的实现

//点击退出的时候,销毁窗口
    connect(ui->quit,&QAction::triggered,this,[=](){
        this->close();
    });

猜你喜欢

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