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中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
解决pandas 作图无法显示中文的问题
May 24 Python
python复制列表时[:]和[::]之间有什么区别
Oct 16 Python
Python3实现统计单词表中每个字母出现频率的方法示例
Jan 28 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
Aug 20 Python
python scipy卷积运算的实现方法
Sep 16 Python
Python django搭建layui提交表单,表格,图标的实例
Nov 18 Python
Python字典生成式、集合生成式、生成器用法实例分析
Jan 07 Python
Django模板之基本的 for 循环 和 List内容的显示方式
Mar 31 Python
Python实现电视里的5毛特效实例代码详解
May 15 Python
Pycharm中配置远程Docker运行环境的教程图解
Jun 11 Python
浅析Python面向对象编程
Jul 10 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中的时间处理
2006/10/09 PHP
在PHP中使用灵巧的体系结构
2006/10/09 PHP
PHP计划任务、定时执行任务的实现代码
2011/04/23 PHP
PHP文件大小格式化函数合集
2014/03/10 PHP
PHP的cURL库简介及使用示例
2015/02/06 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
Laravel4中的Validator验证扩展用法详解
2016/07/26 PHP
window.name代替cookie的实现代码
2010/11/28 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
基于jquery实现图片放大功能
2016/05/07 Javascript
javascript遍历json对象的key和任意js对象属性实例
2017/03/09 Javascript
vue-router实现tab标签页(单页面)详解
2017/10/17 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
2019/01/07 Javascript
微信小程序背景音乐开发详解
2019/12/12 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
python使用点操作符访问字典(dict)数据的方法
2015/03/16 Python
python字符串编码识别模块chardet简单应用
2015/06/15 Python
python文件与目录操作实例详解
2016/02/22 Python
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
python3安装crypto出错及解决方法
2019/07/30 Python
python 进程的几种创建方式详解
2019/08/29 Python
Python 模拟动态产生字母验证码图片功能
2019/12/24 Python
python实现对变位词的判断方法
2020/04/05 Python
python 引用传递和值传递详解(实参,形参)
2020/06/05 Python
python能否java成为主流语言吗
2020/06/22 Python
win10安装python3.6的常见问题
2020/07/01 Python
EJB的几种类型
2012/08/15 面试题
关于赌博的检讨书
2014/01/08 职场文书
11月红领巾广播稿
2014/01/17 职场文书
毕业纪念册寄语大全
2015/02/26 职场文书
教师党员自我评价2015
2015/03/04 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
公司转让协议书
2016/03/19 职场文书
Python实现打乒乓小游戏
2021/09/25 Python