10.8 Qt登录界面

cpp 复制代码
#include "widget.h"
#include <QMessageBox>
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent),neww(nullptr)
{
    this->setWindowTitle("Plane");
    this->setWindowIcon(QIcon(":/picture/111.png"));
    btn1=new QPushButton;

    this->setFixedSize(640,480);
    btn1->setParent(this);   //将界面设置为父组件
    btn1->setText("登录");    //设置按钮文本
    btn1->move(200,350);
    btn1->resize(120,40);
    btn1->setStyleSheet("color:white;background-color:skyblue;border-radius:10px;"); //设置按钮样式表
    btn1->setObjectName("btn1");

    btn2=new QPushButton(this);
    btn2->setText("取消");
    btn2->move(btn1->x()+btn1->width()+20,btn1->y());
    btn2->resize(btn1->size());
    btn2->setStyleSheet("background-color:white;border-radius:10px;");

    acc =new QLineEdit(this);
    acc->resize(260,30);
    acc->move(200,250);
    acc->setAlignment(Qt::AlignCenter);  //文本居中显示
    acc->setEchoMode(QLineEdit::Normal); //设置文本显示模式
    acc->setPlaceholderText("请输入账号"); //设置占位文本

    pwd =new QLineEdit(this);
    pwd->resize(acc->size());
    pwd->move(acc->x(),acc->y()+acc->height()+20);
    pwd->setEchoMode(QLineEdit::Password);
    pwd->setPlaceholderText("请输入密码");
    pwd->setAlignment(Qt::AlignCenter);

    QLabel *logo=new QLabel;
    logo->setParent(this);
    logo->resize(150,150);
    logo->setPixmap(QPixmap(":/picture/111.png"));  //插入图片显示
    logo->setScaledContents(true);  //图片填充
    logo->move(250,60);

    QObject obj;
    //obj.connect(this->btn2,SIGNAL(clicked()),this,SLOT(close()));

    connect(btn1, &QPushButton::clicked, this, &Widget::on_btn1_clicked);
    connect(btn2, &QPushButton::clicked, this, &Widget::on_btn2_clicked);
}



Widget::~Widget()
{
}


void Widget::on_btn1_clicked() //登录按钮
{
    if(acc->text()==pwd->text())
    {                                        //基于属性
        QMessageBox msg(QMessageBox::NoIcon, //无图标对话框
                        "登录",   //对话框标题
                        "登录成功!", //对话框文本
                        QMessageBox::Ok, //提供的按钮
                        this); //父类指针
        int login=msg.exec();
        if(login==QMessageBox::Ok)
        {
            neww=new Second();
            neww->show();
            this->close();
        }
    }else if(acc->text()!=pwd->text())
    {
        QMessageBox fail(QMessageBox::Critical,
                         "登录失败",
                         "账号密码不匹配,是否重新输入?",
                         QMessageBox::Ok|QMessageBox::No,
                         this);
        int log=fail.exec();
        if(log==QMessageBox::Ok)
        {
            pwd->clear();
        }else if(log==QMessageBox::No)
        {
            this->close();
        }
    }
}


void Widget::on_btn2_clicked()
{
    QMessageBox::StandardButton flag;         //基于静态成员函数
    flag=QMessageBox::question(this,
                               "退出",
                               "是否退出?",
                               QMessageBox::Ok|QMessageBox::No,
                               QMessageBox::No);  //默认选中的按钮
    if(flag==QMessageBox::Ok)
    {
        this->close();
    }
}
相关推荐
一只鹿鹿鹿几秒前
信息化项目管理规范(参考Word文件)
java·大数据·运维·开发语言·数据库
这个DBA有点耶3 分钟前
多模融合数据库深度解析:关系、文档、向量、图如何统一?
数据库·自然语言处理·aigc·dba·改行学it
XGeFei5 分钟前
python中子线程与主线程的关系
开发语言·python
Chase_______8 分钟前
【Java杂项】final 关键字详解:变量、方法、类限制与引用可变性
java·开发语言·python
ruxingli18 分钟前
Golang iota详解
开发语言·后端·golang
我材不敲代码19 分钟前
Python venv 虚拟环境从入门到精通 + uv 高性能替代工具实战指南
开发语言·python·uv
anew___20 分钟前
《数据库原理》精要解读(三)—— SQL:与数据库对话的艺术
数据库·sql·oracle
KaiwuDB20 分钟前
KWDB 3.2.0 版本发布,数据管理查询增强,安装部署体验全面升级
数据库
暴躁小师兄数据学院27 分钟前
【AI大数据工程师特训笔记】第10讲:数据库用户、权限管理、数据库约束
大数据·数据库·笔记·sql·postgresql
肥or胖27 分钟前
Qt中OpenGL快速入门
qt·音视频·opengl