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中针对函数处理的特殊方法
Mar 06 Python
使用python实现strcmp函数功能示例
Mar 25 Python
Python全局变量操作详解
Apr 14 Python
Python字符串转换成浮点数函数分享
Jul 24 Python
发布你的Python模块详解
Sep 15 Python
基于Python List的赋值方法
Jun 23 Python
使用Template格式化Python字符串的方法
Jan 22 Python
django商品分类及商品数据建模实例详解
Jan 03 Python
如何基于Python + requests实现发送HTTP请求
Jan 13 Python
关于python的缩进规则的知识点详解
Jun 22 Python
如何用Python编写一个电子考勤系统
Feb 08 Python
Python数据分析之pandas函数详解
Apr 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实现xml转换数组的方法示例
2017/02/03 PHP
PHP使用mysqli操作MySQL数据库的简单方法
2017/02/04 PHP
php获取微信基础接口凭证Access_token
2018/08/23 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
2012/02/27 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
JavaScript全排列的六种算法 具体实现
2013/06/29 Javascript
js实现将json数组显示前台table中
2017/01/10 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
Django+Vue跨域环境配置详解
2018/07/06 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
layui实现下拉复选功能的例子(包括数据的回显与上传)
2019/09/24 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
Python常用的日期时间处理方法示例
2015/02/08 Python
python实现简单温度转换的方法
2015/03/13 Python
基于Python代码编辑器的选用(详解)
2017/09/13 Python
Python列表解析配合if else的方法
2018/06/23 Python
python实现机器学习之元线性回归
2018/09/06 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
python获取磁盘号下盘符步骤详解
2019/06/19 Python
Python调用百度根据经纬度查询地址的示例代码
2019/07/07 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
2020/02/25 Python
文明礼仪小标兵事迹
2014/01/12 职场文书
黄继光的英雄事迹材料
2014/02/13 职场文书
小学清明节活动方案
2014/03/08 职场文书
广告词串烧
2014/03/19 职场文书
产品设计开发计划书
2014/05/07 职场文书
优秀大学生自荐信
2014/06/09 职场文书
本科生求职信
2014/06/17 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
入党介绍人意见范文
2015/06/01 职场文书
小学毕业感言100字
2015/07/30 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
【海涛dota解说】海涛小满开黑4v5被破两路翻盘潮汐第一视角解说
2022/04/01 DOTA