自由发挥登录窗口的应用场景,实现一个登录窗口界面
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QRadioButton>
#include <QCheckBox>
QT_BEGIN_NAMESPACE
namespace Ui { class MyWidget; }
QT_END_NAMESPACE
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = nullptr);
~MyWidget();
private:
Ui::MyWidget *ui;
QLabel* m_plabmpic;
QMovie* m_pMoviem;
QLabel* m_plabname;
QLabel* m_plabpass;
QLineEdit* m_plinename;
QLineEdit* m_plinepass;
QCheckBox* m_pChkRember;
QCheckBox* m_pChkKeepLog;
QPushButton* m_pButtonForget;
QPushButton* m_pButtonCreate;
QPushButton* m_pButtonScan;
QPushButton* m_pButtonLogin;
};
#endif // MYWIDGET_H
#include "mywidget.h"
#include "ui_mywidget.h"
#include <QIcon>
#include <QMovie>
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent),m_plabmpic(NULL),m_pMoviem(NULL),m_plabname(NULL),m_plabpass(NULL)
,m_plinename(NULL),m_plinepass(NULL),m_pChkRember(NULL),m_pChkKeepLog(NULL)
,m_pButtonForget(NULL),m_pButtonCreate(NULL),m_pButtonScan(NULL),m_pButtonLogin(NULL)
{
//界面
this->setWindowTitle("QQ");//标题
this->resize(540,415);//大小
this->setFixedSize(540,415);
this->setWindowIcon(QIcon("C:\\Users\\Fubuki\\Desktop\\QTProjects\\pictrue\\10.jpg"));//图片
this->setWindowFlag(Qt::FramelessWindowHint);//去抬头
this->setStyleSheet("background-color:pink");//背景
//动图
m_plabmpic = new QLabel(this);
m_plabmpic->move(0,0);
m_plabmpic->resize(540,155);
m_pMoviem = new QMovie("C:\\Users\\Fubuki\\Desktop\\QTProjects\\pictrue\\1111.webp");//动图
m_plabmpic->setMovie(m_pMoviem);
m_plabmpic->setScaledContents(true);//图片大小自适应
m_pMoviem->start();//动图启动
//账号
m_plabname = new QLabel(this);//标签
m_plabname->resize(30,30);
m_plabname->move(125,210);
m_plabname->setScaledContents(true);
m_plabname->setPixmap(QPixmap("C:\\Users\\Fubuki\\Desktop\\QTProjects\\pictrue\\GUEhrbHagAEx7jY.jfif"));
m_plinename = new QLineEdit(this);//行编辑器
m_plinename->resize(280,30);
m_plinename->move(160,210);
m_plinename->setPlaceholderText("账号\\手机号\\邮箱");//占位
//密码
m_plabpass = new QLabel(this);//标签
m_plabpass->resize(30,30);
m_plabpass->move(125,260);
m_plabpass->setScaledContents(true);
m_plabpass->setPixmap(QPixmap("C:\\Users\\Fubuki\\Desktop\\QTProjects\\pictrue\\passwd.png"));
m_plinepass = new QLineEdit(this);//行编辑器
m_plinepass->resize(280,30);
m_plinepass->move(160,260);
m_plinepass->setPlaceholderText("密码");
m_plinepass->setEchoMode(QLineEdit::Password);//输入模式
m_pChkRember = new QCheckBox("记住密码",this);
m_pChkRember->resize(90,30);
m_pChkRember->move(135,300);
m_pChkKeepLog = new QCheckBox("保持登陆",this);
m_pChkKeepLog->resize(90,30);
m_pChkKeepLog->move(240,300);
m_pButtonForget = new QPushButton("忘记密码",this);
m_pButtonForget->resize(90,30);
m_pButtonForget->move(350,300);
m_pButtonForget->setStyleSheet("border-radius:5px");
m_pButtonCreate = new QPushButton("注册账号",this);
m_pButtonCreate->resize(90,30);
m_pButtonCreate->move(5,385);
m_pButtonCreate->setStyleSheet("border-radius:5px");
m_pButtonScan = new QPushButton(this);
m_pButtonScan->resize(60,60);
m_pButtonScan->move(480,355);
m_pButtonScan->setStyleSheet("border-image: url(C:\\Users\\Fubuki\\Desktop\\QTProjects\\pictrue\\login.png)");
//m_pButtonScan->setStyleSheet("border: none");
//登录按钮
m_pButtonLogin = new QPushButton("登录",this);
m_pButtonLogin->resize(315,40);
m_pButtonLogin->move(125,335);
m_pButtonLogin->setStyleSheet("background-color:rgb(31,200,253);color:white;border-radius:5px");
}
MyWidget::~MyWidget()
{
if(NULL != m_plabmpic) delete m_plabmpic;
if(NULL != m_pMoviem) delete m_pMoviem;
if(NULL != m_plabname) delete m_plabname;
if(NULL != m_plabpass) delete m_plabpass;
if(NULL != m_plinename) delete m_plinename;
if(NULL != m_plinepass) delete m_plinepass;
if(NULL != m_pButtonLogin) delete m_pButtonLogin;
if(NULL != m_pChkRember) delete m_pChkRember;
if(NULL != m_pChkKeepLog) delete m_pChkKeepLog;
if(NULL != m_pButtonForget) delete m_pButtonForget;
if(NULL != m_pButtonCreate) delete m_pButtonCreate;
if(NULL != m_pButtonScan) delete m_pButtonScan;
}
思维导图