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 相关文章推荐
Mac下Supervisor进程监控管理工具的安装与配置
Dec 16 Python
python实现按任意键继续执行程序
Dec 30 Python
Django的HttpRequest和HttpResponse对象详解
Jan 26 Python
python实现三维拟合的方法
Dec 29 Python
python三大神器之fabric使用教程
Jun 10 Python
django的model操作汇整详解
Jul 26 Python
详解Python中的format格式化函数的使用方法
Nov 20 Python
Python中类似于jquery的pyquery库用法分析
Dec 02 Python
Matplotlib绘制雷达图和三维图的示例代码
Jan 07 Python
Django 批量插入数据的实现方法
Jan 12 Python
Python numpy矩阵处理运算工具用法汇总
Jul 13 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
Oct 21 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
ThinkPHP在Cli模式下使用模板引擎的方法
2015/09/25 PHP
浅谈使用PHP开发微信支付的流程
2015/10/04 PHP
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
php+mysql实现的二级联动菜单效果详解
2016/05/10 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
键盘控制事件应用教程大全
2006/11/24 Javascript
Jquery Select操作方法集合脚本之家特别版
2010/05/17 Javascript
js操作二级联动实现代码
2010/07/27 Javascript
Js,alert出现乱码问题的解决方法
2013/06/19 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
2014/06/09 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
2015/08/25 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
原生JS取代一些JQuery方法的简单实现
2016/09/20 Javascript
JS实现隔行换色的表格排序
2017/03/27 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
python中input()与raw_input()的区别分析
2016/02/27 Python
python中pika模块问题的深入探究
2018/10/13 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
2019/02/22 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
2020/07/02 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
英国最大的纸工艺品商店:CraftStash
2018/12/01 全球购物
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
Linux如何为某个操作添加别名
2015/02/05 面试题
静态变量和实例变量的区别
2015/07/07 面试题
工作推荐信范文
2014/05/10 职场文书
团代会开幕词
2015/01/28 职场文书
2016年“9.22”世界无车日活动小结
2016/04/05 职场文书
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery