PyQt5实现登录页面


Posted in Python onMay 30, 2020

本文实例为大家分享了PyQt5实现登录页面的具体代码,供大家参考,具体内容如下

效果图:

PyQt5实现登录页面

python代码:

import sys
 
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap, QPainter, QColor, QFont, QIcon
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QApplication, QLabel, QDesktopWidget, QHBoxLayout, QFormLayout, \
  QPushButton, QLineEdit
 
 
class LoginForm(QWidget):
  def __init__(self):
    super().__init__()
    self.initUI()
 
  def initUI(self):
    """
    初始化UI
    :return:
    """
    self.setObjectName("loginWindow")
    self.setStyleSheet('#loginWindow{background-color:white}')
    self.setFixedSize(650, 400)
    self.setWindowTitle("登录")
    self.setWindowIcon(QIcon('static/logo_title.png'))
 
    self.text = "xxxx消息盒子用户登录"
 
    # 添加顶部logo图片
    pixmap = QPixmap("static/logo_header.png")
    scaredPixmap = pixmap.scaled(650, 140)
    label = QLabel(self)
    label.setPixmap(scaredPixmap)
 
    # 绘制顶部文字
    lbl_logo = QLabel(self)
    lbl_logo.setText(self.text)
    lbl_logo.setStyleSheet("QWidget{color:white;font-weight:600;background: transparent;font-size:30px;}")
    lbl_logo.setFont(QFont("Microsoft YaHei"))
    lbl_logo.move(150, 50)
    lbl_logo.setAlignment(Qt.AlignCenter)
    lbl_logo.raise_()
 
    # 登录表单内容部分
    login_widget = QWidget(self)
    login_widget.move(0, 140)
    login_widget.setGeometry(0, 140, 650, 260)
 
    hbox = QHBoxLayout()
    # 添加左侧logo
    logolb = QLabel(self)
    logopix = QPixmap("static/logo.png")
    logopix_scared = logopix.scaled(100, 100)
    logolb.setPixmap(logopix_scared)
    logolb.setAlignment(Qt.AlignCenter)
    hbox.addWidget(logolb, 1)
    # 添加右侧表单
    fmlayout = QFormLayout()
    lbl_workerid = QLabel("用户名")
    lbl_workerid.setFont(QFont("Microsoft YaHei"))
    led_workerid = QLineEdit()
    led_workerid.setFixedWidth(270)
    led_workerid.setFixedHeight(38)
 
    lbl_pwd = QLabel("密码")
    lbl_pwd.setFont(QFont("Microsoft YaHei"))
    led_pwd = QLineEdit()
    led_pwd.setEchoMode(QLineEdit.Password)
    led_pwd.setFixedWidth(270)
    led_pwd.setFixedHeight(38)
 
    btn_login = QPushButton("登录")
    btn_login.setFixedWidth(270)
    btn_login.setFixedHeight(40)
    btn_login.setFont(QFont("Microsoft YaHei"))
    btn_login.setObjectName("login_btn")
    btn_login.setStyleSheet("#login_btn{background-color:#2c7adf;color:#fff;border:none;border-radius:4px;}")
 
    fmlayout.addRow(lbl_workerid, led_workerid)
    fmlayout.addRow(lbl_pwd, led_pwd)
    fmlayout.addWidget(btn_login)
    hbox.setAlignment(Qt.AlignCenter)
    # 调整间距
    fmlayout.setHorizontalSpacing(20)
    fmlayout.setVerticalSpacing(12)
 
    hbox.addLayout(fmlayout, 2)
 
    login_widget.setLayout(hbox)
 
    self.center()
    self.show()
 
  def center(self):
    qr = self.frameGeometry()
    cp = QDesktopWidget().availableGeometry().center()
    qr.moveCenter(cp)
    self.move(qr.topLeft())
 
 
if __name__ == "__main__":
  app = QApplication(sys.argv)
  ex = LoginForm()
  sys.exit(app.exec_())

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中的函数用法入门教程
Sep 02 Python
Python中zfill()方法的使用教程
May 20 Python
Python基于Tkinter的HelloWorld入门实例
Jun 17 Python
Python实现合并字典的方法
Jul 07 Python
解决python3爬虫无法显示中文的问题
Apr 12 Python
Python实现高斯函数的三维显示方法
Dec 29 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
Oct 17 Python
Python通过递归获取目录下指定文件代码实例
Nov 07 Python
opencv-python 读取图像并转换颜色空间实例
Dec 09 Python
python中的itertools的使用详解
Jan 13 Python
基于Tensorflow一维卷积用法详解
May 22 Python
区分python中的进程与线程
Aug 13 Python
Python网页解析器使用实例详解
May 30 #Python
PyQt5实现画布小程序
May 30 #Python
Java ExcutorService优雅关闭方式解析
May 30 #Python
Python定时任务APScheduler原理及实例解析
May 30 #Python
Python生成器next方法和send方法区别详解
May 30 #Python
Python新手学习标准库模块命名
May 29 #Python
Django Path转换器自定义及正则代码实例
May 29 #Python
You might like
php cookie用户登录的详解及实例代码
2017/01/03 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
详解JavaScript时间格式化
2015/12/23 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
前端把html表格生成为excel表格的实例
2017/09/19 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
2017/12/25 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
vue-cli 为项目设置别名的方法
2019/10/15 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
2020/01/20 Javascript
React中获取数据的3种方法及优缺点
2020/02/18 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
使用Python求解最大公约数的实现方法
2015/08/20 Python
Python批量发送post请求的实现代码
2018/05/05 Python
python中使用zip函数出现错误的原因
2018/09/28 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
N.Peal官网:来自伦敦的高档羊绒品牌
2018/10/29 全球购物
Myprotein丹麦官网:欧洲第一运动营养品牌
2019/04/15 全球购物
学校安全检查制度
2014/01/27 职场文书
2015年质量月活动总结报告
2015/03/27 职场文书
保护校园环境倡议书
2015/04/28 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
《思路决定出路》读后感3篇
2019/12/11 职场文书
PHP命令行与定时任务
2021/04/01 PHP