看下效果图:

直接看代码,需要的直接复制过去,可以直接使用:

#ifndef LOGINWGT_H
#define LOGINWGT_H#include <QWidget>
#include <QLineEdit>
#include <QPushButton>
#include <QLabel>
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endifclass LoginWgt : public QLabel
{Q_OBJECT
public:explicit LoginWgt(QWidget *parent = nullptr);~LoginWgt();void Init();protected:void mousePressEvent(QMouseEvent *event);void mouseReleaseEvent(QMouseEvent *event);void mouseMoveEvent(QMouseEvent *event);
signals:private:QPushButton *m_pLoginBtn=nullptr;QPushButton *m_pCancelBtn=nullptr;QPushButton *m_pRegisterBtn=nullptr;QLineEdit *m_pUserNameEdit=nullptr;QLineEdit *m_pPasswordEdit=nullptr;QPoint m_ClickePoint;bool m_bClick=false;};#endif // LOGINWGT_H
#include "loginwgt.h"
#include "function.h"
#include <QHBoxLayout>
#include <QFont>
#include <QTextCodec>
#include <QMouseEvent>LoginWgt::LoginWgt(QWidget *parent) : QLabel(parent)
{this->resize(500,400);this->setWindowFlag(Qt::FramelessWindowHint);QPixmap pixMap(":/Image/loginbackground.jpg");this->setPixmap(pixMap);Init();}LoginWgt::~LoginWgt()
{}void LoginWgt::Init()
{QPushButton *minBtn=new QPushButton(this);minBtn->setFixedSize(40,40);minBtn->setIcon(QIcon(":/Image/min.png"));QPushButton *maxBtn=new QPushButton(this);maxBtn->setFixedSize(40,40);maxBtn->setIcon(QIcon(":/Image/max.png"));QPushButton *closeBtn=new QPushButton(this);closeBtn->setFixedSize(40,40);closeBtn->setIcon(QIcon(":/Image/close.png"));minBtn->setStyleSheet("QPushButton{border:none}""QPushButton::hover{background:rgb(145,237,253)}");maxBtn->setStyleSheet("QPushButton{border:none}""QPushButton::hover{background:rgb(145,237,253)}");closeBtn->setStyleSheet("QPushButton{border:none}""QPushButton::hover{background:rgb(145,237,253)}");QWidget *titleWgt=new QWidget(this);QHBoxLayout *titleLayout=new QHBoxLayout(this);titleLayout->addStretch();titleLayout->addWidget(minBtn);titleLayout->addWidget(maxBtn);titleLayout->addWidget(closeBtn);titleLayout->setSpacing(2);titleLayout->setMargin(0);titleWgt->setLayout(titleLayout);titleWgt->setStyleSheet("background:rgb(229,241,251)");titleWgt->setFixedHeight(35);QFont textFont=GetTextFont();m_pLoginBtn=new QPushButton(tr("登录"),this);m_pCancelBtn=new QPushButton(tr("取消"),this);m_pRegisterBtn=new QPushButton(tr("注册"),this);m_pUserNameEdit=new QLineEdit(this);m_pPasswordEdit=new QLineEdit(this);m_pLoginBtn->setStyleSheet("border:none;background:rgb(145,237,253)");m_pCancelBtn->setStyleSheet("border:none;background:rgb(145,237,253)");m_pLoginBtn->setFont(textFont);m_pCancelBtn->setFont(textFont);m_pRegisterBtn->setFont(textFont);m_pUserNameEdit->setFont(textFont);m_pPasswordEdit->setFont(textFont);m_pLoginBtn->setFixedSize(128,27);m_pCancelBtn->setFixedSize(128,27);m_pUserNameEdit->setFixedSize(250,27);m_pPasswordEdit->setFixedSize(250,27);m_pRegisterBtn->setFixedSize(40,27);m_pRegisterBtn->setStyleSheet("border:none;color:darkred");m_pUserNameEdit->setPlaceholderText(tr("请输入用户名"));m_pPasswordEdit->setPlaceholderText(tr("请输入密码"));m_pUserNameEdit->setStyleSheet("background:rgba(145,237,253,0.5);border:none;border-radius:2px");m_pPasswordEdit->setStyleSheet("background:rgba(145,237,253,0.5);border:none;border-radius:2px");QFont titleFont=GetTitleFont();QLabel *titleLabel=new QLabel(tr("欢迎"));titleLabel->setAlignment(Qt::AlignCenter);titleLabel->setFont(titleFont);titleLabel->setStyleSheet("color:red");//titleLabel->setFixedSize(200,50);//    QLabel *userNameLabel=new QLabel(tr("用户名: "),this);
//    QLabel *passwordLabel=new QLabel(tr("密码: "),this);
//    userNameLabel->setFont(textFont);
//    passwordLabel->setFont(textFont);//    userNameLabel->setStyleSheet("color:red");
//    passwordLabel->setStyleSheet("color:red");//    userNameLabel->setFixedSize(50,27);
//    passwordLabel->setFixedSize(50,27);QWidget *userNameWgt=new QWidget(this);QHBoxLayout *userNameLayout=new QHBoxLayout(this);//userNameLayout->addWidget(userNameLabel);userNameLayout->addWidget(m_pUserNameEdit);userNameLayout->setMargin(0);userNameLayout->setSpacing(5);userNameWgt->setLayout(userNameLayout);QWidget *passWordWgt=new QWidget(this);QHBoxLayout *passWordLayout=new QHBoxLayout(this);//passWordLayout->addWidget(passwordLabel);passWordLayout->addWidget(m_pPasswordEdit);passWordLayout->setMargin(0);passWordLayout->setSpacing(5);passWordWgt->setLayout(passWordLayout);QWidget *btnWgt=new QWidget(this);QHBoxLayout *btnLayout=new QHBoxLayout(this);btnLayout->addStretch();btnLayout->addWidget(m_pLoginBtn);btnLayout->addWidget(m_pCancelBtn);btnLayout->setSpacing(20);btnLayout->setMargin(0);btnLayout->addStretch();btnWgt->setLayout(btnLayout);QWidget *RegisterWgt=new QWidget(this);QHBoxLayout *RegisterLayout=new QHBoxLayout(this);QLabel *regisLabel=new QLabel(tr("如果你还没有账号,请点击"));regisLabel->setFixedWidth(145);regisLabel->setFont(textFont);RegisterLayout->addWidget(regisLabel);RegisterLayout->addWidget(m_pRegisterBtn);RegisterLayout->setMargin(10);RegisterLayout->setSpacing(0);RegisterLayout->addStretch();RegisterWgt->setLayout(RegisterLayout);QVBoxLayout *mainLayout=new QVBoxLayout(this);mainLayout->addWidget(titleWgt);mainLayout->addWidget(titleLabel);mainLayout->addWidget(userNameWgt);mainLayout->addWidget(passWordWgt);mainLayout->addWidget(btnWgt);mainLayout->addWidget(RegisterWgt);mainLayout->setMargin(0);mainLayout->setSpacing(5);this->setLayout(mainLayout);
}void LoginWgt::mousePressEvent(QMouseEvent *event)
{if(event->button()==Qt::LeftButton){m_ClickePoint=event->globalPos()-this->pos();m_bClick=true;}
}void LoginWgt::mouseReleaseEvent(QMouseEvent *event)
{m_bClick=false;
}void LoginWgt::mouseMoveEvent(QMouseEvent *event)
{if(event->buttons()==Qt::LeftButton&&m_bClick){this->move(event->globalPos()-m_ClickePoint);}
}

图片自己网上找就可以了

qt制作漂亮的登录界面,仅供参考相关推荐

  1. 【电子文件制作攻略】(仅供参考)

    [电子文件制作攻略](仅供参考) 1. 文件扫描 工具:手机应用"口袋扫描仪"或"扫描全能王" 下载:通过官网https://www.myhithink.com ...

  2. Qt制作漂亮个性化的界面

    Qt怎么做漂亮个性化的界面.下面是界面在window和linux下的样子.视频课程链接https://edu.csdn.net/course/detail/26797/341351

  3. js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考)

    最近下班无聊,就看了一下之前写的教务系统模拟登录代码(python-爬虫),整体逻辑大概自己总结了一下: 1.请求验证码图片. 2.对输入的密码进行加密. 3.封装账号,密码,验证码,发送post请求 ...

  4. 写一个漂亮的登录界面

    好的,我会尽力为您提供一个漂亮的登录界面的设计建议. 首先,我们可以在界面的上方设置一个清晰的标题栏,标题栏中可以包含网站的 logo 和名称. 然后,在界面的中间部分,我们可以设置一个表单来让用户输 ...

  5. 怎么用Android做登录界面,利用Android怎么制作一个APP登录界面

    利用Android怎么制作一个APP登录界面 发布时间:2020-12-02 17:09:10 来源:亿速云 阅读:79 作者:Leah 这期内容当中小编将会给大家带来有关利用Android怎么制作一 ...

  6. Flutter 制作漂亮的登录表单

    在本教程中,我将向您展示如何在 Flutter 和 Android studio 中制作漂亮的登录表单, 您将学习如何制作背景图像.如何在 Flutter中制作圆形按钮.如何添加一些不透明度以及如何添 ...

  7. 【vue+pc端】实现微信扫码登录pc端,后端通过微信开发平台,前端生成二维码(仅供参考)

    这两周的需求是通过微信扫码登录pc端,刚定下需求原型图还没出来前,后端特意发了微信开发平台的链接给我,关于如何生成二维码的文档,以及扫码跳转后如何传code给他. 请戳这里准备工作|微信开放文档 我最 ...

  8. 使用模板快速制作H5网页(仅供参考)

    #[转载] 使用模板快速制作H5网页(仅供参考) 教程来源: 零基础30分钟学会制作网站--如何使用HTML网页模板(更新P2字幕版) 作者:SolidifieRay 1.HTML整体框架: < ...

  9. 用vue设计一个漂亮的登录界面

    你好! 在 Vue 中设计一个漂亮的登录界面可以使用以下步骤: 准备好所需的图片和样式文件,包括背景图片和字体. 在 Vue 组件的 template 部分中,使用 HTML 元素和组件创建登录表单的 ...

  10. 【学生请假系统——开题报告 分享(仅供参考呀)】

    目录 一.研究目的和意义: 二.课题研究现状: 三.课题研究主要内容.实施方案及创新点: 四.课题进度安排: 五.主要参考文献:(仅供参考呀!) 一.研究目的和意义: 1.研究目的 开发高校学生请假系 ...

最新文章

  1. 《C程序员:从校园到职场》出版预告(1):从“高大上”到“柴米油盐”
  2. Java性能优化指南,及唯品会的实战
  3. 利用 TensorFlow 实现上下文的 Chat-bots
  4. DebootstrapChroot
  5. 非科班的java程序员该如何补充计算机基础知识,需要看哪些书?
  6. 【VBA】多条件去重
  7. 《白日梦想家》观后感
  8. 【eclipse插件开发实战】Eclipse插件开发2——SWT
  9. python怎么用numpy_Python:一篇文章掌握Numpy的基本用法
  10. 手机txt拆分器_TXT文本分割器
  11. noip2017普及组
  12. Polar SI9000-PCB阻抗计算
  13. AOP底层实现原理、基于注解的AOP编程、AOP开发中的一个坑 打卡第八天
  14. R语言survival包coxph函数构建cox回归模型、ggrisk包ggrisk函数可视化Cox回归的风险评分图、使用cutoff包基于最小p值法方法计算最佳截断值(基于LIRI基因数据集)
  15. 黑产和灰产的区别在于那里
  16. Android 10 默认输入法
  17. 游戏后台生成唯一ID
  18. C语言重载宏函数的小技巧
  19. gitee码云的使用
  20. 【Python训练营】Python每日一练----第6天:迷宫

热门文章

  1. 微信小程序报错:Unhandled promise rejection TypeError: WebAssembly.instantiate(): Argument 0 must be a buffe
  2. element ui的table组件在鼠标滑动时边框线消失的解决
  3. js高级学习笔记(b站尚硅谷)-7-函数中的this
  4. git学习笔记-(12-git后悔药-1)
  5. linux用命令启动达梦数据库,达梦数据库DM7的命令行安装
  6. odoo13 订单模板设置_ERP输出嵌入公章的采购订单电子档,其实真的不难
  7. nginx502错误原因解决方法_Got fatal error 1236原因和解决方法
  8. opa847方波放大电路_我现在用lm358做了一个放大3倍的放大电路,输出大概3~4v,要带负载50Ω。带150的时候没事,但50就波形消失...
  9. c语言void swap1,C语言的一些遗留问题(1):关于交换两个数的swap()函数的一些问题...
  10. oracle into关键字,oracle - INTO保留关键字不能用作标识符 - 堆栈内存溢出