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内置函数OCT详解
Nov 09 Python
解决Linux系统中python matplotlib画图的中文显示问题
Jun 15 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
Nov 01 Python
python机器学习之神经网络(三)
Dec 20 Python
python决策树之CART分类回归树详解
Dec 20 Python
python3调用R的示例代码
Feb 23 Python
Python subprocess模块常见用法分析
Jun 12 Python
Python使用folium excel绘制point
Jan 03 Python
python super的使用方法及实例详解
Sep 25 Python
Python while循环使用else语句代码实例
Feb 07 Python
Python3运算符常见用法分析
Feb 14 Python
Python 合并拼接字符串的方法
Jul 28 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中使用反射技术的架构插件使用说明
2010/05/18 PHP
第六章 php目录与文件操作
2011/12/30 PHP
php中使用GD库做验证码
2016/03/31 PHP
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
jquery选择器-根据多个属性选择示例代码
2013/10/21 Javascript
JS获取各种浏览器窗口大小的方法
2014/01/14 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
三种动态加载js的jquery实例代码另附去除js方法
2014/04/30 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
轻松实现JavaScript图片切换
2016/01/12 Javascript
JQuery日期插件datepicker的使用方法
2016/03/03 Javascript
Javascript之面向对象--封装
2016/12/02 Javascript
三种Webpack打包方式(小结)
2018/09/19 Javascript
学习jQuery中的noConflict()用法
2018/09/28 jQuery
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
JS代码检查工具ESLint介绍与使用方法
2020/02/04 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
python实现排序算法解析
2018/09/08 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
python之openpyxl模块的安装和基本用法(excel管理)
2021/02/03 Python
HTML5 Geolocation API的正确使用方法
2018/12/04 HTML / CSS
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
香港彩色隐形眼镜在线商店:Stunninglens(全球免费送货)
2019/05/10 全球购物
岗位职责的含义
2013/11/17 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
乡镇食品安全责任书
2014/07/28 职场文书
地下停车场租赁协议范本
2014/10/07 职场文书
教师先进事迹材料
2014/12/16 职场文书
python scrapy简单模拟登录的代码分析
2021/07/21 Python
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
2022/04/22 SQL Server