我试图在 Qt 中编写一个简单的登录表单。如果用户名和密码正确,它应该打开另一个表单。但它的行为真的很奇怪这是我的代码:
login::login(QWidget *parent) :
QDialog(parent)
{
QPushButton * login_button = new QPushButton;
QPushButton * exit = new QPushButton;
login_button->setText("LOGIN");
exit->setText("EXIT");
QLineEdit * username = new QLineEdit;
QLineEdit * password = new QLineEdit;
QVBoxLayout * login_layout = new QVBoxLayout ;
QHBoxLayout * button_layout = new QHBoxLayout ;
username->setText("Enter Username ...");
password->setText("Enter Password ... ");
exit->connect(exit,SIGNAL(pressed()),this , SLOT(close()));
login_layout->addWidget(username);
login_layout->addWidget(password);
button_layout->addWidget(login_button);
button_layout->addWidget(exit);
login_layout->addLayout(button_layout);
this->setLayout(login_layout);
this->connect(login_button,SIGNAL(clicked()),this,SLOT(finduser()));
}
void login::finduser()
{
if (username->text().compare("admin")) // <---- problem !!
emit showmanage() ;
return;
}
finduser 是我的对话类的一个插槽。它发出“showmanage”信号,打开我愿意打开的表单。实际问题出在 if 语句中。我不知道为什么,但是当它运行时会导致我的窗口崩溃。这也不起作用:
void login::finduser()
{
if (username->text()=="admin") // <---- problem !!
emit showmanage() ;
return;
}
我不知道我做错了什么也继承了调试消息:下级停止,因为它收到了来自操作系统信号名称的信号:sigsegv 信号含义:分段错误