0
即時通訊嘗試寫一個簡單的登錄表單在Qt中。如果用戶名和密碼是正確的,它應該打開另一個表單。 但其演技很奇怪 繼承人我的代碼:錯誤雖然比較QString
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是我的對話框類的插槽。它發出打開我願意打開的表單的「顯示管理」信號。 實際的問題是在if語句中。我不知道爲什麼,但它運行時會導致我的窗戶崩潰。 這也行不通:
void login::finduser()
{
if (username->text()=="admin") // <---- problem !!
emit showmanage() ;
return;
}
我不知道什麼即時做錯了 也繼承人的調試消息: 下停止,因爲它recievd從操作系統 信號名稱的信號:SIGSEGV 信號含義:分割故障
是的。這是。我討厭自己:) – A73rnA
沒有什麼好討厭的。我做得更糟更簡單的錯誤:) – Mahesh