优化登录框:
将两个按钮连接到槽函数
在构造函数中定义
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() << "手滑了";
}
}