Qt设置类似于qq登录页面

头文件

cpp 复制代码
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QWindow>
#include <QIcon>
#include <QLabel>
#include <QMovie>
#include <QLineEdit>
#include <QPushButton>

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;

    void Btn2_slot();
};
#endif // WIDGET_H

源文件

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //==============窗口设置============
    //给窗口设置标题
    this->setWindowTitle("真爱粉聊天软件");
    //给窗口设置图标
    this->setWindowIcon(QIcon(":/pictrue/xhz.jpg"));
    //窗口背景颜色
    this->setStyleSheet("background-color:rgb(255,255,255)");
    //给窗口固定大小
    this->setFixedSize(540,410);
    //设置纯净窗口(去掉头部)
    this->setWindowFlag(Qt::FramelessWindowHint);

    //================标签设置==========
    //创建标签并指定父对象
    //创建第一个标签(背景)
    QLabel *lab1 = new QLabel(this);
    //给标签设置大小
    lab1->resize(540,160);
    //给标签设置动图
    QMovie *mv1 = new QMovie(":/pictrue/cxk.gif");
    //将图放入标签中
    lab1->setMovie(mv1);
    //让图动起来
    mv1->start();
    //自动适应标签大小
    lab1->setScaledContents(true);

    //创建第二个标签(用户名标签)
    QLabel *lab2 = new QLabel(this);
    lab2->resize(25,25);
    //给标签设置图片
    lab2->setPixmap(QPixmap(":/pictrue/userName.jpg"));
    //自动适应
    lab2->setScaledContents(true);
    //让标签移动位置
    lab2->move(120,220);

    //创建第三个标签(密码标签)
    QLabel *lab3 = new QLabel(this);
    lab3->resize(25,25);
    lab3->setPixmap(QPixmap(":/pictrue/passwd.jpg"));
    lab3->setScaledContents(true);
    lab3->move(120,255);

    QLabel *lab4 = new QLabel(this);
    lab4->resize(100,160);
    lab4->setPixmap(QPixmap(":/pictrue/zhenaifen1.jpg"));
    lab4->setScaledContents(true);
    lab4->move(0,165);

    QLabel *lab5 = new QLabel(this);
    lab5->resize(100,160);
    lab5->setPixmap(QPixmap(":/pictrue/zhenaifen2.jpg"));
    lab5->setScaledContents(true);
    lab5->move(440,165);


    //==============行编辑器设置============
    //创建第一个行编辑器并指定父对象(账号)
    QLineEdit *edit1 = new QLineEdit(this);
    //给行编辑器设置大小
    edit1->resize(280,30);
    //移动行编辑器
    edit1->move(150,220);
    //设置显示标题
    edit1->setPlaceholderText("ikun账号");

    //创建第二个行编辑器(密码)
    QLineEdit *edit2 = new QLineEdit(this);
    edit2->resize(280,30);
    edit2->move(150,255);
    edit2->setPlaceholderText("密码");
    //设置模式(密码模式:隐藏输入的字符)
    edit2->setEchoMode(QLineEdit::Password);

    //==============按钮设置==============
    //设置按钮并指定父对象
    QPushButton *btn1 = new QPushButton(this);
    //设置按钮大小
    btn1->resize(300,45);
    //移动按钮
    btn1->move(120,345);
    //给按钮设置背景颜色并给边角修弧度
    btn1->setStyleSheet("background-color:rgb(234,210,253);border-radius:10px");
    //给窗口设置标题
    btn1->setText("登录");

    //设置第二个按钮(退出)
    QPushButton *btn2 = new QPushButton(this);
    btn2->resize(30,30);
    btn2->move(510,0);
    btn2->setText("X");
    btn2->setStyleSheet("background-color:skyblue");
    //手动连接信号和槽,基于qt5版本
    connect(btn2,&QPushButton::clicked,this,&Widget::Btn2_slot);



}

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

void Widget::Btn2_slot(){
    this->close();
}

效果图

实现

相关推荐
_.Switch10 分钟前
Python机器学习模型的部署与维护:版本管理、监控与更新策略
开发语言·人工智能·python·算法·机器学习
醉颜凉13 分钟前
银河麒麟桌面操作系统修改默认Shell为Bash
运维·服务器·开发语言·bash·kylin·国产化·银河麒麟操作系统
NiNg_1_23418 分钟前
Vue3 Pinia持久化存储
开发语言·javascript·ecmascript
带带老表学爬虫27 分钟前
java数据类型转换和注释
java·开发语言
qianbo_insist30 分钟前
simple c++ 无锁队列
开发语言·c++
BigYe程普40 分钟前
我开发了一个出海全栈SaaS工具,还写了一套全栈开发教程
开发语言·前端·chrome·chatgpt·reactjs·个人开发
彭于晏68942 分钟前
Android广播
android·java·开发语言
弱冠少年1 小时前
websockets库使用(基于Python)
开发语言·python·numpy
长天一色1 小时前
C语言日志类库 zlog 使用指南(第五章 配置文件)
c语言·开发语言
一般清意味……1 小时前
快速上手C语言【上】(非常详细!!!)
c语言·开发语言