QTDay3

完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个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)
{
    ui->setupUi(this);
    this->setWindowTitle("QQ");
    //ui->logoLabel->setPixmap(QPixmap(":/ICon/qq.gif"));
    QMovie *mv = new QMovie(":/ICon/qq.gif");
    ui->logoLabel->setMovie(mv);
    mv->start();
    ui->logoLabel->setScaledContents(true);
    ui->usernameLabl->setPixmap(QPixmap(":/ICon/qq2.png"));
    ui->usernameLabl->resize(40,40);
    ui->usernameLabl->setScaledContents(true);
    ui->passwdLabl->setPixmap(QPixmap(":/ICon/qq3.png"));
    ui->passwdLabl->resize(40,40);
    ui->passwdLabl->setScaledContents(true);
    ui->usernameEdit->setPlaceholderText("QQ账号/手机号");
    ui->passwdEdit->setEchoMode(QLineEdit::Password);
    ui->loginBtn->setIcon(QIcon(":/ICon/qq2.png"));
    ui->guanbiBtn->setIcon(QIcon(":/ICon/qq3.png"));


}

Widget::~Widget()
{
    delete ui;
}
//登录按钮的槽函数功能实现
void Widget::on_loginBtn_clicked()//通过ui界面的转到槽生成登录按钮槽函数声明,槽函数收到的信号为clicked
{
    if(ui->usernameEdit->text() == "admin" && ui->passwdEdit->text() == "123456")//核对账号和密码是否正确,如果正确执行下列代码
    {
        //通过属性版成员函数实现实例对话框(信息),并定义两个按钮yes和no
        QMessageBox msg(QMessageBox::Information,"提示","登录成功",QMessageBox::Yes | QMessageBox::No);
        //使用这个对话框并定义一个整型接收按钮的返回值,因为对话框的按钮为枚举
        int res = msg.exec();
        //判断点击的按钮
        if(res == QMessageBox::Yes)
        {
            //如果点击的是yes那就关闭当前窗口
            this->close();
            //发送loginjump的信号,从而让second窗口接收信号执行对应的槽函数show,打开second窗口
            emit loginjump();
        }
       
    }
    else//如果账户和密码不正确的话,执行下列代码
    {
        //通过静态成员函数实例一个警告对话框,并定义两个按钮yes和no,定义res来接收按钮的返回值,因为是枚举
        int res = QMessageBox::warning(this,"错误","账号和密码不匹配,是否重新登录",QMessageBox::Yes | QMessageBox::No);
        //如果点击yes按钮
        if(res == QMessageBox::Yes)
        {
            //清空密码行编辑组件中的内容
            ui->passwdEdit->clear();
        }
        else
        {
            //如果点击的no,关闭当前窗口
            this->close();
        }

    }

}

//通过ui界面的转到槽生成关闭按钮槽函数声明,槽函数收到的信号为clicked
void Widget::on_guanbiBtn_clicked()
{
    //通过静态成员函数实现问题对话框,并定义两个按钮yes和no
    int res = QMessageBox::question(this,"问题","您是否确定要退出登录?",QMessageBox::Yes | QMessageBox::No);
    //
    if(res == QMessageBox::Yes)
    {
        //如果点击yes,当前窗口关闭,如果点击no,继续登录
        this->close();
    }

}

QTDay3_第1张图片

你可能感兴趣的:(命令模式)