完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面
如果账号和密码不匹配,弹出错误对话框,给出信息”账号和密码不匹配,是否重新登录“,并提供两个按钮Yes|No,用户点击Yes后,清除密码框中的内容,继续让用户进行登录,如果用户点击No按钮,则直接关闭登录界面
如果用户点击取消按钮,则弹出一个问题对话框,给出信息”您是否确定要退出登录?“,并给出两个按钮Yes|No,用户迪纳基Yes后,关闭登录界面,用户点击No后,关闭对话框,继续执行登录功能
要求:基于属性版实现
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
,but1(new QPushButton("登录",this))
,edit1(new QLineEdit(this))
,edit2(new QLineEdit(this))
{
ui->setupUi(this);
//********************窗口栏******************
this->setWindowFlag(Qt::FramelessWindowHint); //将窗口栏设为无;
this->resize(1080,600); //设置窗口的大小
this->setWindowIcon(QIcon(":/pictrue/3353e4f9662dd5b2229678604621ce5.png"));
this->setStyleSheet("background-color:rgb(11,11,11)");//设置窗口底色
//*****************设置标签*******************
QLabel *lab1 = new QLabel(this); //申请空间
lab1->resize(160,180); //设置标签大小
lab1->setStyleSheet("background-color:black");//设置颜色
lab1->move(450,0);//移动标签位置
lab1->setPixmap(QPixmap(":/pictrue/3353e4f9662dd5b2229678604621ce5.png"));
lab1->setScaledContents(true); //自动适应
QLabel *lab2 = new QLabel(this);
lab2->resize(50,50);
lab2->move(470,200);
lab2->setStyleSheet("color:white");
lab2->setText("WeGame");
QLabel *lab3 = new QLabel(this);
lab3->move(450,450);
lab3->resize(80,20);
lab3->setText("保存密码");
lab3->setStyleSheet("color:white");
QLabel *lab4 = new QLabel(this);
lab4->move(550,450);
lab4->resize(80,20);
lab4->setText("自动登录");
lab4->setStyleSheet("color:white");
QLabel *lab5 = new QLabel(this); //申请空间
lab5->resize(350,610); //设置标签大小
lab5->setStyleSheet("background-color:white");//设置颜色
//移动标签位置
lab5->setPixmap(QPixmap(":/pictrue/b47439a56bfaaa4dc573e2ab34618348.png"));
lab5->setScaledContents(true); //自动适应
QLabel *lab6 = new QLabel(this); //申请空间
lab6->resize(350,610); //设置标签大小
lab6->setStyleSheet("background-color:white");//设置颜色
lab6->move(730,0); //移动标签位置
lab6->setPixmap(QPixmap(":/pictrue/55c5a8474a7169ba938c825614077d27.png"));
lab6->setScaledContents(true); //自动适应
//*************** 设置行编辑器 **********************
// QLineEdit *edit1 =new QLineEdit(this);
edit1 ->resize(250,50);
edit1 ->move(400,300);
edit1 ->setStyleSheet("background-color:rgb(0.0)");
edit1 ->setPlaceholderText("QQ账号/手机号");
// QLineEdit *edit2 =new QLineEdit(this);
edit2 ->resize(250,50);
edit2 ->move(400,370);
edit2 ->setStyleSheet("background-color:rgb(0.0)");
edit2 ->setPlaceholderText("密码");
edit2 ->setEchoMode(QLineEdit::Password);
//****************设置按钮 *********************
// QPushButton *but1 = new QPushButton("登录",this);
but1 ->resize(250,50);
but1 ->move(400,470);
but1->setStyleSheet("background-color:orange;color:black");
QPushButton *but2 = new QPushButton("快速安全登录",this);
but2 ->resize(100,20);
but2 ->move(470,540);
but2->setStyleSheet("background-color:black;color:white");
connect(but1,SIGNAL(clicked()),this,SLOT(my_slots()));
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_ExitpushButton_clicked()
{
QMessageBox exit(QMessageBox::Information,"选择","您是否要真的退出",QMessageBox::Yes | QMessageBox::No,this);
int reg3 = exit.exec();
if(reg3 == QMessageBox::Yes)
{
this->close();
}
else
{
exit.close();
}
}
void Widget::my_slots()
{
if((edit1->text() =="admin")&&(edit2->text()=="123456"))
{
QMessageBox msg(QMessageBox::NoIcon,"登录","登录成功",QMessageBox::Ok,this);
int reg =msg.exec();
msg.setStyleSheet("background-color:rgb(74,186,171)");
msg.setStyleSheet("color:white");
if(reg == QMessageBox::Ok)
{
this->close();
}
}
else
{
QMessageBox msg2(QMessageBox::Critical,"错误","账号密码不匹配,是否重新登录",QMessageBox::Yes|QMessageBox::No,this);
int reg2 = msg2.exec();
if(reg2 == QMessageBox::Yes)
{
edit1->clear();
edit2->clear();
}
else {
this->close();
}
}
}