qt:day——用户登录界面设计

点击登录按钮,如果账户和密码匹配,则弹出一个信息对话框,提示消息恭喜你登录成功”,提供一个ok按钮,用户点击ok后,整个页面关闭。
如果账户和密码不匹配,则弹出一个问题对话框,提示消息"账号和密码不匹配,是否重新登录?”,并提供两个按钮,分别是yes和no如果用户点击yes,则清空行编辑器中的内容,允许用户继续登录,如果点击no,则关闭整个页面
2>点击取消按钮,直接弹出一个警告对话框,提示消息"您是否确认要退出登录”,提供两个按钮,分别是yes和no
如果用户点击yes,则关闭整个页面,如果用户点击no,则进行进行登录

widget.h头文件

#ifndef WIDGET_H
#define WIDGET_H

#include 
#include
#include
#include
#include
#include
#include

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
//自定义槽
private slots:
    void on_success_enter();
private slots:
    void on_cancel_cancel();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

widget.cpp代码段:

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //设置窗口属性
    this->setWindowIcon(QIcon(":/1.jpg"));
    this->setWindowTitle("张的第一个窗口");
    //设置窗口为固定的尺寸
    this->setFixedSize(500,500);
    //设置logo的图像
    ui->logo->setPixmap(QPixmap(":/good.png"));
    //将logo设置为自适应labal标签
    ui->logo->setScaledContents(true);
    //设置账户lab1的图片
    ui->lab1->setPixmap(QPixmap(":/userName.jpg"));
    //设置密码的图片
    ui->labe2->setPixmap(QPixmap(":/passwd.jpg"));
    //设置账户和密码的图片的大小
    ui->lab1->setFixedSize(30,30);
    ui->labe2->setFixedSize(30,30);
    //设置账户和密码的labal为自适应大小
    //将lab1设置为自适应labal标签
    ui->lab1->setScaledContents(true);
    //将labe2设置为自适应labal标签
    ui->labe2->setScaledContents(true);
    //更改账户和密码的宽和高
    ui->line1->setFixedSize(300,ui->lab1->height());
    ui->line2->setFixedSize(300,ui->lab1->height());
    //将密码的显示格式设置为password
    ui->line2->setEchoMode(QLineEdit::Password);
    //设置登录和取消按钮的大小
    ui->success->setFixedSize(80,30);
    ui->cancel->setFixedSize(80,30);

    //连接登陆成功的槽函数和信号
    connect(ui->success,&QPushButton::clicked,this,&Widget::on_success_enter);
    //链接登录失败的槽函数
    connect(ui->cancel,&QPushButton::clicked,this,&Widget::on_cancel_cancel);
    connect(ui->cancel,SIGNAL(clicked()),this,SLOT(close()));
}
Widget::~Widget()
{
    delete ui;
}
//点击过登陆,调用
void Widget::on_success_enter()
{
    //定义两个字符串来接收文本框里面的内容
    // next:
    QString username_text= ui->line1->text();
    QString passwd_text =ui->line2->text();
    if(username_text=="exend"&&passwd_text=="1234567")
    {
        qDebug() <<"登录成功";
        //登陆成功调用消息对话框类,参数1 是会话框图标,参数2 是会话框后的内容,参数3 是里面的显示,参数4 是下面的选项,可以不写
        QMessageBox succ(QMessageBox::NoIcon,"cf登录","登陆成功......",QMessageBox::Ok);
        int s=succ.exec();
        if(s == QMessageBox::Ok)
        {
            this->close();
        }
    }
    else
    {
        qDebug()<<"登陆失败,是否重新登录";
        //登陆失败调用的消息对话框类,
        QMessageBox lose(QMessageBox::Information ,"cf登录","登陆失败,是否重新登录...", QMessageBox::Ok|QMessageBox::Cancel);

        int s =lose.exec();
        if(s==QMessageBox::Ok)
        {
            qDebug()<<"重新登陆";
            //清空会话框中的内容
            ui->line1->setText("");
            ui->line2->setText("");
        }
        else if(s == QMessageBox::Cancel)
        {
            //直接取消登录
            qDebug()<<"取消登录成功";
            this->close();
        }
    }

}
//取消登录的话调用该函数
void Widget::on_cancel_cancel()
{
    qDebug()<<"取消登录";
}


你可能感兴趣的:(qt,ui,qt,开发语言)