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 相关文章推荐
Django1.7+python 2.78+pycharm配置mysql数据库教程
Nov 18 Python
Python中用于计算对数的log()方法
May 15 Python
在Python中处理字符串之ljust()方法的使用简介
May 19 Python
获取Django项目的全部url方法详解
Oct 26 Python
Python 元类实例解析
Apr 04 Python
python中yield的用法详解——最简单,最清晰的解释
Apr 04 Python
PyCharm导入python项目并配置虚拟环境的教程详解
Oct 13 Python
python实现交并比IOU教程
Apr 16 Python
Keras SGD 随机梯度下降优化器参数设置方式
Jun 19 Python
python通过函数名调用函数的几种场景
Sep 23 Python
Python中pass的作用与使用教程
Nov 13 Python
python 如何将两个实数矩阵合并为一个复数矩阵
May 19 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项目打包方法
2008/02/18 PHP
PHP HTML代码串 截取实现代码
2009/06/29 PHP
按上下级层次关系输出内容的PHP代码
2010/07/17 PHP
php中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
PHP中ob_start函数的使用说明
2013/11/11 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
php利用gd库为图片添加水印
2016/11/09 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
javascript 尚未实现错误解决办法
2008/11/27 Javascript
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
jQuery动画animate方法使用介绍
2013/05/06 Javascript
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
javascript中数组array及string的方法总结
2014/11/28 Javascript
Javascript中setTimeOut和setInterval的定时器用法
2015/06/12 Javascript
JavaScript实现图片轮播的方法
2015/07/31 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
2015/11/17 Javascript
AngularJS自定义控件实例详解
2016/12/13 Javascript
element-ui 的el-button组件中添加自定义颜色和图标的实现方法
2018/10/26 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
vue.js watch经常失效的场景与解决方案
2021/01/07 Vue.js
python 转换 Javascript %u 字符串为python unicode的代码
2016/09/06 Python
对TensorFlow中的variables_to_restore函数详解
2018/07/30 Python
python3 打开外部程序及关闭的示例
2018/11/06 Python
python数据处理 根据颜色对图片进行分类的方法
2018/12/08 Python
python程序变成软件的实操方法
2019/06/24 Python
python opencv 批量改变图片的尺寸大小的方法
2019/06/28 Python
俄罗斯汽车零件和配件在线商店:CarvilleShop
2019/11/29 全球购物
校长先进事迹材料
2014/02/01 职场文书
文案策划求职信
2014/03/18 职场文书
宪法宣传周工作方案
2014/05/26 职场文书
2016新年慰问信范文
2015/03/25 职场文书
劳动合同变更协议书范本
2019/04/18 职场文书
2019初中学生入团申请书
2019/06/27 职场文书
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫