2024.5.7

//头文件

#ifndef MYWIDGET_H
#define MYWIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>
#include <QTextToSpeech>
#include <QString>
#include <QtDebug>
#include <QIcon>
#include <QMovie>
#include <cstring>

QT_BEGIN_NAMESPACE
namespace Ui { class MyWidget; }
QT_END_NAMESPACE

class MyWidget : public QWidget
{
    Q_OBJECT

public:
    MyWidget(QWidget *parent = nullptr);
    ~MyWidget();

    QLabel *lab1,*lab2,*lab3;
    QLineEdit *line1,*line2;
    QPushButton *btn1;
public slots:
    void btn1_clicked();
    void btn1_perception1();
    void btn1_perception2();
private:
    Ui::MyWidget *ui;
};
#endif // MYWIDGET_H

 

//源文件

#include "mywidget.h"
#include "ui_mywidget.h"

MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::MyWidget)
{
    ui->setupUi(this);
    //设置窗口大小
    this->resize(400,560);
    //设置窗口图标和标题
    this->setWindowTitle("QQ");
    this->setWindowIcon(QIcon(":/pictrue/qq.png"));
    //设置固定窗口大小
    this->setFixedSize(400,560);
    //设置窗口去头部
    this->setWindowFlag(Qt::FramelessWindowHint);

    //设置窗口的背景
    lab1 = new QLabel(this);
    //设置文本大小
    lab1->resize(400,560);
    //设置动图
    QMovie *mv = new QMovie(":/pictrue/10.gif");

    //设置lab1自适应 + 动图放入lab1
    lab1->setMovie(mv);
    //设置动图运动
    mv->start();
    lab1->setScaledContents(true);
    //设置头像框 152*82
    lab2 = new QLabel(this);
    //设置头像框大小和位置
    lab2->resize(100,100);
    lab2->move(152,82);
    //设置头像框为圆形
    lab2->setStyleSheet("border-radius:50%");
    //设置头像自适应
    lab2->setScaledContents(true);
    //设置头像框头像
    //lab2->setPixmap(QPixmap(":/pictrue/15.gif"));
    QMovie *mv2 = new QMovie(":/pictrue/15.gif");
    lab2->setMovie(mv2);
    mv2->start();

    //设置账号文本
    line1 = new QLineEdit(this);
    //设置账号文本位置和大小   41*210   310*60
    line1->resize(310,50);
    line1->move(41,210);
    //设置文本背景色,边角圆弧
    line1->setStyleSheet("background-color:white;border-radius:10px;font:bold 20px");
    //设置文本提示(占位)
    line1->setPlaceholderText("输入QQ号");

    //设置密码文本
    line2 = new QLineEdit(this);
    //设置密码文本位置大小
    line2->resize(310,50);
    line2->move(41,275);
    //设置文本背景色和边角圆弧  41*402
    line2->setStyleSheet("background-color:white;border-radius:10px;font:bold 20px");
    //设置文本提示(占位)
    line2->setPlaceholderText("输入QQ密码");
    //设置为密码模式
    line2->setEchoMode(QLineEdit::Password);

    //设置按钮
    btn1 = new QPushButton("登录",this);
    //设置按钮位置和大小
    btn1->resize(310,50);
    btn1->move(41,400);
    //设置按钮的颜色,背景色,字体大小,居中
    btn1->setStyleSheet("background-color:rgb(0,141,235);color:white;font:bold 20px;border-radius:10px;text-align:center");


    //设置信号与槽
    connect(this->btn1,&QPushButton::clicked,this,&MyWidget::btn1_clicked);
    connect(this->line1,&QLineEdit::textChanged,this,&MyWidget::btn1_perception1);
    connect(this->line2,&QLineEdit::textChanged,this,&MyWidget::btn1_perception2);
}

MyWidget::~MyWidget()
{
    delete ui;
}

void MyWidget::btn1_clicked(){
    QLabel *lab = new QLabel;
    lab->resize(130,130);
    lab->setPixmap(QPixmap(":/pictrue/cancel.png"));
    lab->setStyleSheet("text-align:20px");
    lab->setScaledContents(true);
    if(this->line1->text()=="2024021" && this->line2->text()=="123456"){
            lab->setText("登陆成功");
            lab->show();
            this->close();
    }else{
        line1->clear();
        line2->clear();
        lab->setText("账号、密码错误");
        lab->show();

    }
}
void MyWidget::btn1_perception1(){
    if(this->line1->text().length()<6 || this->line2->text().length()<6){
        btn1->setStyleSheet("background-color:rgb(80,80,80);color:white;font:bold 20px;border-radius:10px;text-align:center");
        btn1->setEnabled(false);
    }else{
        btn1->setStyleSheet("background-color:rgb(0,141,235);color:white;font:bold 20px;border-radius:10px;text-align:center");
        btn1->setEnabled(true);
    }
}
void MyWidget::btn1_perception2(){
    if(this->line2->text().length()<6 || this->line1->text().length()<6){
         btn1->setStyleSheet("background-color:rgb(80,80,80);color:white;font:bold 20px;border-radius:10px;text-align:center");
        btn1->setEnabled(false);
    }else{
        btn1->setStyleSheet("background-color:rgb(0,141,235);color:white;font:bold 20px;border-radius:10px;text-align:center");
        btn1->setEnabled(true);
    }
}

实现效果

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值