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();
    }
}
相关推荐
code_li8 分钟前
聊聊支付宝架构
java·开发语言·架构
Pocker_Spades_A9 分钟前
Oracle向KingbaseES迁移:核心痛点拆解与根源分析
数据库·oracle
被星1砸昏头20 分钟前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
XT462530 分钟前
交易、订单轮询策略(能用数据库轮询解决的不用Redis,能用Redis解决的不用消息队列)
数据库·redis·bootstrap
少控科技37 分钟前
QT高阶日记01
开发语言·qt
周某人姓周39 分钟前
sqlilabs靶场通关详解
数据库·mysql·安全·网络安全
ZeroNews内网穿透44 分钟前
远程访问SQLITE-WEB服务
数据库·sqlite
无限进步_1 小时前
【C++】大数相加算法详解:从字符串加法到内存布局的思考
开发语言·c++·windows·git·算法·github·visual studio
“抚琴”的人1 小时前
C#上位机工厂模式
开发语言·c#
巨大八爪鱼1 小时前
C语言纯软件计算任意多项式CRC7、CRC8、CRC16和CRC32的代码
c语言·开发语言·stm32·crc