【Qt】仿照qq界面的设计

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_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    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;
}

效果展示

相关推荐
xrgs_shz2 小时前
MATLAB的数据类型和各类数据类型转化示例
开发语言·数据结构·matlab
来恩10035 小时前
C# 类与对象详解
开发语言·c#
komo莫莫da5 小时前
寒假刷题Day19
java·开发语言
ElseWhereR6 小时前
C++ 写一个简单的加减法计算器
开发语言·c++·算法
※DX3906※6 小时前
cpp实战项目—string类的模拟实现
开发语言·c++
wjs20247 小时前
Nginx 安装配置指南
开发语言
美味小鱼7 小时前
实践Rust:编写一个猜数字游戏
开发语言·游戏·rust
Dr.勿忘8 小时前
C#面试常考随笔8:using关键字有哪些用法?
开发语言·unity·面试·c#·游戏引擎
dal118网工任子仪8 小时前
92,[8] 攻防世界 web Web_php_wrong_nginx_config
开发语言·php