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实现模拟时钟代码推荐
Nov 08 Python
python中如何使用分步式进程计算详解
Mar 22 Python
python中break、continue 、exit() 、pass终止循环的区别详解
Jul 08 Python
Pandas之排序函数sort_values()的实现
Jul 09 Python
解决python 文本过滤和清理问题
Aug 28 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
Dec 10 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
Feb 28 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
Jul 18 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
Oct 10 Python
解决import tensorflow导致jupyter内核死亡的问题
Feb 06 Python
python中%格式表达式实例用法
Jun 18 Python
python数据可视化使用pyfinance分析证券收益示例详解
Nov 20 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下用rmdir实现删除目录的三种方法小结
2008/04/20 PHP
PHP面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
CentOS安装php v8js教程
2015/02/26 PHP
如何解决PHP无法实现多线程的问题
2015/09/25 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
javascript限制用户只能输汉字中文的方法
2014/11/20 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
2016/05/16 Javascript
Node.js使用orm2进行update操作时关联字段无法修改的解决方法
2017/06/13 Javascript
详解node nvm进行node多版本管理
2017/10/21 Javascript
JS抛物线动画实例制作
2018/02/24 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
2018/06/11 Javascript
在js代码拼接dom对象到页面上的模板总结
2018/10/21 Javascript
Vue 实例事件简单示例
2019/09/19 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
浅析python 内置字符串处理函数的使用方法
2014/06/11 Python
Python实现快速多线程ping的方法
2015/07/15 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
2018/05/04 Python
Python OOP类中的几种函数或方法总结
2019/02/22 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
python字符串拼接+和join的区别详解
2020/12/03 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
2021/01/27 Python
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
美国在线宠物用品商店:Entirely Pets
2017/01/01 全球购物
Java如何格式化日期
2012/08/07 面试题
经理管理专业毕业自荐书范文
2014/02/12 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
关于青春的演讲稿500字
2014/08/22 职场文书
2014年度工作总结报告
2014/12/15 职场文书
有关西游记的读书笔记
2015/06/25 职场文书
格林童话读书笔记
2015/06/30 职场文书