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的内存泄漏及gc模块的使用分析
Jul 16 Python
Python基于Tkinter实现的记事本实例
Jun 17 Python
python读取二进制mnist实例详解
May 31 Python
python提取包含关键字的整行数据方法
Dec 11 Python
Python语言进阶知识点总结
May 28 Python
用python给自己做一款小说阅读器过程详解
Jul 11 Python
django将数组传递给前台模板的方法
Aug 06 Python
PyTorch笔记之scatter()函数的使用
Feb 12 Python
Tensorflow与Keras自适应使用显存方式
Jun 22 Python
call在Python中改进数列的实例讲解
Dec 09 Python
python爬取抖音视频的实例分析
Jan 19 Python
彻底解决pip下载pytorch慢的问题方法
Mar 01 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
玛琪朵 Macchiato
2021/03/03 咖啡文化
php单态设计模式(单例模式)实例
2014/11/18 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
利用XMLHTTP传递参数在另一页面执行并刷新本页
2006/10/26 Javascript
JavaScript实现简单获取当前网页网址的方法
2015/11/09 Javascript
AngularJS  $modal弹出框实例代码
2016/08/24 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
使用JQ完成表格隔行换色的简单实例
2017/08/25 Javascript
JS集合set类的实现与使用方法示例
2019/02/01 Javascript
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
Nodejs 识别图片类型的方法
2019/08/15 NodeJs
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
[01:14]辉夜杯战队访谈宣传片—NEWBEE.Y
2015/12/26 DOTA
python 调用HBase的简单实例
2016/12/18 Python
Python之py2exe打包工具详解
2017/06/14 Python
解决python Markdown模块乱码的问题
2019/02/14 Python
python将字母转化为数字实例方法
2019/10/04 Python
关于tensorflow的几种参数初始化方法小结
2020/01/04 Python
django中url映射规则和服务端响应顺序的实现
2020/04/02 Python
超全Python图像处理讲解(多模块实现)
2020/04/13 Python
python 用opencv实现图像修复和图像金字塔
2020/11/27 Python
哈利波特商店:Harry Potter Shop
2018/11/30 全球购物
大学毕业生个人自荐信范文
2014/01/08 职场文书
优秀食品类广告词
2014/03/19 职场文书
青春演讲稿范文
2014/05/08 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
党员剖析材料范文
2014/09/30 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
签证工作证明模板
2015/06/15 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL