歌者~ 2020-04-04 22:48 采纳率: 100%
浏览 825
已采纳

Qt开发中,类中对象LineEdit->text()无法传递值

    自己写的Qt程序,调试一天没整明白,恳请大佬指导555!
    首先,写了一个Login类,构造函数用来布局登录界面,两个LineEdit用来输入账号和密码,登录按钮使用connect连着userlogin()函数。
    Login类继承于QWidget。
    loginDialog是Login的对象。
    下面是是userlogin()的代码:
void Login::userLogin()
{
    loginDialog = new Login;
    QString name = loginDialog->nameEdit->text();
    QString password = loginDialog->passwordEdit->text();
    mysql = new MySQL;
    if(!(mysql->loginUser(name,password)))
        QMessageBox::information(this, tr("消息"), tr("登录失败,请重试!"), QMessageBox::Ok);
    else{
        QMessageBox::information(this, tr("消息"), tr("登录成功!"), QMessageBox::Ok);
        loginDialog->hide();
        MainWindow w;
        w.show();
    }
}
    使用debug调试的时候发现name和password的值始终是空的,只有""。如果把他们写死成固定值可以正常运行。
    在main函数中调用Login类用的是show()函数,虽然感觉用show()不妥。
    Login L;
    L.show();

5555,打赏别的方式也可,求大佬!

  • 写回答

1条回答 默认 最新

  • zx289544730 2020-04-05 20:01
    关注

    你的用法用错了,你的Login类里应该有一个ui变量,用ui变量调用QLineEdit,而不是重新new一个Login,
    你在userLogin里new Login就生成了另一个对象,这个对象的QLineEdit并没有赋值。
    改成下面的代码:
    // loginDialog = new Login;
    QString name = ui->nameEdit->text();
    QString password = ui->passwordEdit->text();

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站