widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QDebug>//QT中信息调试类,用于输出数据,无需使用该类的实例化对象,直接使用成员函数即可
#include <QIcon>//图标类
#include <QPushButton>//按钮类
#include <QLabel>//标签类
#include <QMovie>//动画类
#include <QLineEdit>//行编辑器
#include <QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private:Ui::Widget *ui;QPushButton *btn1;//登录按钮QPushButton *btn2;//取消按钮QLineEdit *lin1;//账号输入框QLineEdit *lin2;//密码输入框QLabel *lab1;//账号小图标QLabel *lab2;//密码小图标QLabel *lab3;//动图框QLabel *lab4;//用户头像QMovie *movie;//动图private slots:void my_slot(); //自定义登录函数};
#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->resize(500,400);this->setFixedSize(500,400);//设置固定大小不允许拉伸this->setStyleSheet("background-color:white;");//登录按钮btn1 = new QPushButton("登录",this);btn1->resize(100,30);//设置按钮大小btn1->move(149,300);//移动登录按钮btn1->setStyleSheet("background-color:skyblue;border-radius:10;");//设置样式表connect(this->btn1,&QPushButton::clicked,this,&Widget::my_slot);//取消按钮btn2 = new QPushButton("取消",this);btn2->resize(btn1->size());//设置取消按钮和登陆按钮一样大btn2->move(btn1->x()+btn1->width()+2,btn1->y());//移动取消按钮btn2->setStyleSheet("border-radius:10;border: 1px solid black;");//设置样式表//连接取消按到函数中,点击取消执行关闭窗口connect(this->btn2,&QPushButton::clicked,[&](){this->close();});//账号输入框lin1 = new QLineEdit(this);lin1->resize(280,35);//重新设置大小lin1->move(150,200);//移动位置//密码输入框lin2 = new QLineEdit(this);lin2->resize(lin1->size());//重新设置大小lin2->move(lin1->x(),lin1->y()+lin1->height()+5);//移动位置lin2->setPlaceholderText("密码");//设置占位文字lin2->setEchoMode(QLineEdit::Password);//设置回显模式//账号小图标lab1 = new QLabel(this);lab1->resize(35,35);//重新设置大小lab1->move(lin1->x()-36,lin1->y());//设置坐标lab1->setPixmap(QPixmap("D:\\icon\\icon\\zhanghao.png"));//设置图标lab1->setScaledContents(true);//密码小图标lab2 = new QLabel(this);lab2->resize(35,35);//重新设置大小lab2->move(lin2->x()-36,lin2->y());//设置坐标lab2->setPixmap(QPixmap("D:\\icon\\icon\\mima.png"));//设置图标lab2->setScaledContents(true);//动图框lab3 = new QLabel(this);lab3->resize(500, 160);//重新设置大小movie = new QMovie("D:\\icon\\icon\\0019.gif");lab3->setMovie(movie);//将动图放入标签中movie->start();//让动图开始动//让标签内容自适应大小lab3->setScaledContents(true);//用户头像lab4 = new QLabel(this);lab4->resize(70,70);//重新设置大小lab4->move(230,120);//设置坐标lab4->setPixmap(QPixmap("D:\\icon\\icon\\1.jpg"));//设置图标lab4->setStyleSheet("border-radius:10;");lab4->setScaledContents(true);
}void Widget::my_slot()
{if(this->lin1->text() == this->lin2->text()){qDebug()<<"登陆成功";}else{qDebug()<<"登陆失败";}
}Widget::~Widget()
{delete ui;
}
效果展示