关于#Qt#的问题,如何解决?

img


需要点修改弹出一个框,比如

img


但是我需要里面默认显示一些数据,从数据库里面查到的

这是我写的一些代码,但是显示到那个上面我就不会了

void MainWindow::on_btn_edit_clicked()
{
    DiaAddStu * diaaddstu = nullptr;
    QSqlQuery sql(m_prtStuSql->m_db);
    int rowIndex = ui->tableWidget->currentRow();
    int id = ui->tableWidget->item(rowIndex,1)->text().toUInt();
    QString strSql = QString("select * from student where id = %1").arg(id);
    if(sql.exec(strSql))
    {
        while(sql.next())
        {
            QString name = sql.value("name").toString();
            diaaddstu->ui->le_name->setText(name);

            int age = sql.value("name").toUInt();
            diaaddstu->ui->spinBox->setValue(age);

            QString garde = QString::number(sql.value("name").toUInt());
            diaaddstu->ui->le_grade->setText(garde);

            QString uiclass = QString::number(sql.value("name").toUInt());
            diaaddstu->ui->le_class->setText(uiclass);

            QString studentid = QString::number(sql.value("name").toUInt());
            diaaddstu->ui->le_studentid->setText(studentid);

            QString phone = sql.value("name").toString();
            diaaddstu->ui->le_phone->setText(phone);

            QString wechat = sql.value("name").toString();
            diaaddstu->ui->le_wechat->setText(wechat);
        }
//调用弹框,好像是这个有问题,单机修改就直接关闭了
        m_addStu.exec();
    }
//更新表
    updateTable();
}

【以下回答由 GPT 生成】

以上问题的代码存在一些错误,以下是修改后的代码:

void MainWindow::on_btn_edit_clicked()
{
    DiaAddStu * diaaddstu = new DiaAddStu(this); // 创建DiaAddStu对象
    QSqlQuery sql(m_prtStuSql->m_db);
    int rowIndex = ui->tableWidget->currentRow();
    int id = ui->tableWidget->item(rowIndex, 0)->text().toInt(); // 修改获取id的方式
    QString strSql = QString("select * from student where id = %1").arg(id);
    if(sql.exec(strSql))
    {
        if(sql.next()) // 只需要取一行数据
        {
            QString name = sql.value("name").toString();
            diaaddstu->ui->le_name->setText(name);

            int age = sql.value("age").toInt();
            diaaddstu->ui->spinBox->setValue(age);

            QString grade = sql.value("grade").toString();
            diaaddstu->ui->le_grade->setText(grade);

            QString uiclass = sql.value("uiclass").toString(); // 修改字段名
            diaaddstu->ui->le_class->setText(uiclass);

            QString studentid = sql.value("studentid").toString(); // 修改字段名
            diaaddstu->ui->le_studentid->setText(studentid);

            QString phone = sql.value("phone").toString();
            diaaddstu->ui->le_phone->setText(phone);

            QString wechat = sql.value("wechat").toString();
            diaaddstu->ui->le_wechat->setText(wechat);

            diaaddstu->exec(); // 显示DiaAddStu对话框
        }
    }

    delete diaaddstu; // 释放DiaAddStu对象
}

通过以上修改,从数据库中获取的数据将正确显示在DiaAddStu对话框的相应UI元素中。请注意,修改后的代码中的字段名需要根据数据库中的实际字段名进行调整。同时,确保DiaAddStu对象已正确创建并在使用后进行释放。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^