QLineEdit.text() 函数使我的程序崩溃,但仅当它在插槽中时

问题描述

快速说明,我还在 HS 并试图组合一个小项目,基本上是使用我们学校服务器的某种信使应用程序。

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

所以我为此制作了插槽:

Slots :

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

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

此外,如果有帮助,这是我的整个类定义.cpp .h

预先感谢任何试图帮助我的人:-)

解决方法

它崩溃的原因是 segmentation fault。 您没有为这两个 QLineEdits 分配地址。 您在构造函数中实际所做的是定义另一个 QLineEdit m_nicknamem_password 并且您的类成员变量未位于内存中
像这样改变你定义这些 QLineEdits 的构造函数:

代替

QLineEdit *m_nickname = new QLineEdit();

m_nickname = new QLineEdit();

而不是

QLineEdit *m_password = new QLineEdit();

m_password = new QLineEdit();