首页 > 解决方案 > QLineEdit.text() 函数使我的程序崩溃,但仅当它位于插槽中时

问题描述

快速解释一下,我还在 HS 中,正在尝试组合一个小项目,基本上它是某种使用我们学校服务器的信使应用程序。

当然,为此,您需要一个登录窗口,其中包含帐户管理和其他内容。帐户管理部分已经完成,只剩下我将所有内容放在一起的部分,将按钮连接到操作等。

所以我为此做了插槽:

插槽:

问题是,一旦我尝试从窗口的插槽中读取 QLineEdits 中的文本,我的整个应用程序就会崩溃

(m_nickname 和 m_password 是输入用户名和密码的两个 QLineEdit)(m_login 和 m_signup 是登录和注册的两个按钮)

另外,如果有帮助,这是我的整个班级定义: .cpp .h

提前感谢任何试图帮助我的人:-)

标签: c++qtqlineedit

解决方案


它崩溃的原因是分段错误。您没有为这两个 QLineEdits 分配地址。您在构造函数中实际所做的是定义另一个 QLineEdit m_nicknamem_password并且您的类成员变量没有在内存中找到
更改您定义这些 QLineEdits 的构造函数,如下所示:

代替

QLineEdit *m_nickname = new QLineEdit();

m_nickname = new QLineEdit();

而不是

QLineEdit *m_password = new QLineEdit();

m_password = new QLineEdit();

推荐阅读