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 zip文件 压缩
Dec 24 Python
Python实现自动登录百度空间的方法
Jun 10 Python
python对DICOM图像的读取方法详解
Jul 17 Python
python3+PyQt5泛型委托详解
Apr 24 Python
Python把csv数据写入list和字典类型的变量脚本方法
Jun 15 Python
pycharm重置设置,恢复默认设置的方法
Oct 22 Python
远程部署工具Fabric详解(支持Python3)
Jul 04 Python
Ubuntu+python将nii图像保存成png格式
Jul 18 Python
如何在Cloud Studio上执行Python代码?
Aug 09 Python
pycharm解决关闭flask后依旧可以访问服务的问题
Apr 03 Python
Python如何读写字节数据
Aug 05 Python
Django + Taro 前后端分离项目实现企业微信登录功能
Apr 07 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函数解决SQL injection
2006/12/09 PHP
Php连接及读取和写入mysql数据库的常用代码
2014/08/11 PHP
Laravel的throttle中间件失效问题解决方法
2016/10/09 PHP
简单谈谈PHP中的Reload操作
2016/12/12 PHP
浅析onsubmit校验表单时利用ajax的return false无效问题
2013/07/10 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
Jquery实现鼠标移动放大图片功能实例
2015/03/25 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
JS实现简单短信验证码界面
2017/08/07 Javascript
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
vue倒计时刷新页面不会从头开始的解决方法
2020/03/03 Javascript
js实现选项卡效果
2020/03/07 Javascript
JavaScript日期库date-fn.js使用方法解析
2020/09/09 Javascript
js实现鼠标滑动到某个div禁止滚动
2020/09/17 Javascript
[45:59]完美世界DOTA2联赛PWL S2 FTD vs GXR 第二场 11.22
2020/11/24 DOTA
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
Python爬虫代理IP池实现方法
2017/01/05 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
你需要学会的8个Python列表技巧
2020/06/24 Python
植村秀加拿大官网:Shu Uemura加拿大
2019/09/03 全球购物
生物制药毕业生自荐信
2013/10/16 职场文书
应届生英语教师求职信
2013/11/05 职场文书
老同学聚会感言
2014/02/23 职场文书
企业负责人任命书
2014/06/05 职场文书
法人委托书
2014/07/31 职场文书
公司年底活动方案
2014/08/17 职场文书
湖南省召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2015年小学中秋节活动总结
2015/03/23 职场文书
2015年高校辅导员工作总结
2015/04/20 职场文书
交通事故调解协议书
2015/05/20 职场文书
详解nodejs内置模块
2021/05/06 NodeJs