优化登录框:
将两个按钮连接到槽函数
在构造函数中定义
connect(this->btn1,&QPushButton::clicked,this,&Logon::my_slot);connect(this->btn2,&QPushButton::clicked,this,&Logon::my_cancel);
定义登录按钮连接的槽函数
void Logon::my_slot()
{if(this->edit1->text() == this->edit2->text()){qDebug() << "登录成功";//直接调用静态成员函数完成对话框的调用int btn = QMessageBox::information(this, //父组件"信息", //标题"登录成功", //文本内容QMessageBox::Ok, //提供的按钮QMessageBox::Ok); //默认按钮//2.对按钮进行判断if(btn == QMessageBox::Ok){close(); //关闭当前界面emit jump(); //跳转界面}}else{qDebug() << "登录失败";//1.实例化错误对话框的对象QMessageBox box(QMessageBox::Critical, //错误图标"错误", //标题"账号密码不匹配", //文本内容QMessageBox::Ok|QMessageBox::No, //提供的按钮this); //父组件//2.调用函数设置相关属性box.setButtonText(QMessageBox::Ok,"重新登陆");box.setButtonText(QMessageBox::No,"取消");box.setDefaultButton(QMessageBox::Ok); //设置默认按钮为取消//3.显示对话框:并返回用户点击的那个按钮int btn = box.exec();//4.判断用户点击的按钮值if(btn == QMessageBox::Ok){this->edit1->clear(); //清空密码}else if (QMessageBox::No){close(); //关闭登录界面}}
}
定义取消按钮的槽函数
void Logon::my_cancel()
{//1.实例化问题对话框的对象QMessageBox box(QMessageBox::Question, //问题图标"问题", //对话框标题"是否退出登录", //对话框文本内容QMessageBox::Ok|QMessageBox::No, //对话框提供的按钮this); //父组件//2.调用函数设置相关属性box.setButtonText(QMessageBox::Ok,"退出");box.setButtonText(QMessageBox::No,"取消");box.setDefaultButton(QMessageBox::No); //设置默认按钮为取消//3.显示对话框:并返回用户点击的那个按钮int btn = box.exec();//4.判断用户点击的按钮值if(btn == QMessageBox::Ok){close(); //关闭登录界面}else if (QMessageBox::No){qDebug() << "手滑了";}
}