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基于正则表达式实现检查文件内容的方法【文件检索】
Aug 30 Python
Python爬虫获取图片并下载保存至本地的实例
Jun 01 Python
win10系统下Anaconda3安装配置方法图文教程
Sep 19 Python
学生信息管理系统python版
Oct 17 Python
python 实现分页显示从es中获取的数据方法
Dec 26 Python
python爬取酷狗音乐排行榜
Feb 20 Python
python3.x实现base64加密和解密
Mar 28 Python
详解Python匿名函数(lambda函数)
Apr 19 Python
python-tornado的接口用swagger进行包装的实例
Aug 29 Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 Python
python rsa-oaep加密的示例代码
Sep 23 Python
python入门之算法学习
Apr 22 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嵌套输出缓冲代码实例
2015/05/12 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
PHP抽象类基本用法示例
2018/12/28 PHP
PHP大文件切割上传并带进度条功能示例
2019/07/01 PHP
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
jQuery.extend()的实现方式详解及实例
2013/06/29 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
基于Jquery制作图片文字排版预览效果附源码下载
2015/11/18 Javascript
JS实现DIV高度自适应窗口示例
2017/02/16 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
2018/05/15 Javascript
在vue项目中优雅的使用SVG的方法实例详解
2018/12/03 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
antd配置config-overrides.js文件的操作
2020/10/31 Javascript
nodejs中的异步编程知识点详解
2021/01/17 NodeJs
Vue 实例中使用$refs的注意事项
2021/01/29 Vue.js
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
python每5分钟从kafka中提取数据的例子
2019/12/23 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
python中str内置函数用法总结
2020/12/27 Python
美国著名手表网站:Timepiece
2017/11/15 全球购物
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
你所在的项目是如何确定版本号的
2015/12/28 面试题
超市开店计划书
2014/04/26 职场文书
投资建议书模板
2014/05/12 职场文书
我爱家乡演讲稿
2014/09/12 职场文书
群众路线教育实践活动实施方案
2014/10/31 职场文书
护士医德考评自我评价
2015/03/03 职场文书
Redis唯一ID生成器的实现
2022/07/07 Redis