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中使用SimpleParse模块进行解析的教程
Apr 11 Python
Python数据分析之获取双色球历史信息的方法示例
Feb 03 Python
对Python3之进程池与回调函数的实例详解
Jan 22 Python
很酷的python表白工具 你喜欢我吗
Apr 11 Python
python读写配置文件操作示例
Jul 03 Python
python使用Qt界面以及逻辑实现方法
Jul 10 Python
python Pandas库基础分析之时间序列的处理详解
Jul 13 Python
Python配置文件处理的方法教程
Aug 29 Python
python的range和linspace使用详解
Nov 27 Python
如何安装并在pycharm使用selenium的方法
Apr 30 Python
Tensorflow与Keras自适应使用显存方式
Jun 22 Python
解决keras模型保存h5文件提示无此目录问题
Jul 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
PHP中extract()函数的定义和用法
2012/08/17 PHP
解析PHP工厂模式的好处
2013/06/18 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
JavaScript类和继承 constructor属性
2010/03/04 Javascript
Javascript实现的类似Google的Div拖动效果代码
2011/08/09 Javascript
jquer之ajaxQueue简单实现代码
2011/09/15 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
细说javascript函数从函数的构成开始
2013/08/29 Javascript
JS小功能(button选择颜色)简单实例
2013/11/29 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
jQuery对象的链式操作用法分析
2016/05/10 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
2016/11/07 Javascript
JS实现的简易拖放效果示例
2016/12/29 Javascript
详解在 Angular 项目中添加 clean-blog 模板
2017/07/04 Javascript
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
详解react-refetch的使用小例子
2019/02/15 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
Vue的Eslint配置文件eslintrc.js说明与规则介绍
2020/02/03 Javascript
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
[原创]教女朋友学Python(一)运行环境搭建
2017/11/29 Python
Sanic框架Cookies操作示例
2018/07/17 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
python绘制汉诺塔
2021/03/01 Python
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
HTML5中判断用户是否正在浏览页面的方法
2014/05/03 HTML / CSS
一百多行代码实现react拖拽hooks
2021/03/23 Javascript
岗位廉洁从政承诺书
2014/03/27 职场文书
公司采购主管岗位职责
2014/06/17 职场文书
销售竞赛活动方案
2014/08/23 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
内乡县衙导游词
2015/02/05 职场文书
周一早安温馨问候祝福语!
2019/07/15 职场文书
详解JAVA的控制语句
2021/11/11 Java/Android