o18_99_1 2023-08-06 20:10 采纳率: 44.4%
浏览 6
已结题

关于#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();
}

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-06 22:04
    关注

    【以下回答由 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对象已正确创建并在使用后进行释放。



    【相关推荐】



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

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月17日
  • 修改了问题 8月6日
  • 修改了问题 8月6日
  • 创建了问题 8月6日