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在Windows和在Linux下调用动态链接库的教程
Aug 18 Python
Python通过Django实现用户注册和邮箱验证功能代码
Dec 11 Python
python中pip的使用和修改下载源的方法
Jul 08 Python
pandas如何处理缺失值
Jul 31 Python
Python进程间通信 multiProcessing Queue队列实现详解
Sep 23 Python
Python OpenCV视频截取并保存实现代码
Nov 30 Python
pytorch梯度剪裁方式
Feb 04 Python
keras load model时出现Missing Layer错误的解决方式
Jun 11 Python
python opencv角点检测连线功能的实现代码
Nov 24 Python
pycharm配置python 设置pip安装源为豆瓣源
Feb 05 Python
使用Python的开发框架Brownie部署以太坊智能合约
May 28 Python
Pygame Draw绘图函数的具体使用
Nov 17 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+mysql写的留言本
2006/10/09 PHP
php zip文件解压类代码
2009/12/02 PHP
wampserver改变默认网站目录的办法
2015/08/05 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
微信支付开发动态链接Native支付
2016/07/12 PHP
基于PHP实现堆排序原理及实例详解
2020/06/19 PHP
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
js中的面向对象入门
2017/03/06 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
2017/05/02 Javascript
node.js中EJS 模板快速入门教程
2017/05/08 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
浅谈vue首屏加载优化
2018/06/28 Javascript
layui实现下拉复选功能的例子(包括数据的回显与上传)
2019/09/24 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
Python实现的基数排序算法原理与用法实例分析
2017/11/23 Python
python+selenium实现163邮箱自动登陆的方法
2017/12/31 Python
django创建超级用户过程解析
2019/09/18 Python
Pyspark读取parquet数据过程解析
2020/03/27 Python
Python 处理日期时间的Arrow库使用
2020/08/18 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
CSS3 实现弹幕的示例代码
2017/08/07 HTML / CSS
Banggood官网:面向全球客户的综合商城
2017/04/19 全球购物
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
欧洲最古老的鞋厂:Peter Kaiser
2019/11/05 全球购物
请解释接口的显式实现有什么意义
2012/05/26 面试题
儿科护士自我鉴定
2013/10/14 职场文书
市政施工员自我鉴定
2014/01/15 职场文书
连锁酒店店长职责范本
2014/02/13 职场文书
护士长竞聘书
2014/03/31 职场文书
升学宴主持词
2014/04/02 职场文书
爱国演讲稿500字
2014/05/04 职场文书
优秀党员主要事迹范文
2015/11/05 职场文书