使用 PyQt5 的 Qt Designer 工具设计登录注册页面

使用 PyQt5(PySide2)+SQLAlchemy 做一个登录注册页(一)

本文将介绍自己用 PyQt5+SQLAlchemy 做的一个登录注册页,使用邮箱接收验证码本文介绍是前后端未分离的实现方式,后续将出一个前后端分离的,你可以将 PyQt5 改为 PySide2 以获得更宽松的开源协议

本文由于涉及到的代码较多,将会是一个系列,会有多篇文章

系列文章索引

  1. 设计登录注册页面
  2. 添加代码运行登录注册页,并为其添加一些样式,和调用资源文件
  3. 使用 SQLAlchemy 实现用户数据库管理
  4. 为登录页,添加登录逻辑代码,实现登录
  5. 给注册页,添加注册逻辑代码,实现用户的注册验证
  6. 给忘记密码页,添加逻辑,实现密码找回
  7. 给登录添加记住用户密码功能,并优化一些内容

必要说明

  • 使用的环境 requirements.txt
# Python3.8.10 x32
# Windows10 x64
PyQt5
pyqt5-tools
PyMySQL~=1.1.0
sqlalchemy~=2.0.25
bcrypt~=4.1.2
  • 项目结构
--- QtLoginRegistration
  |--- static                       # 资源,如图片、样式等
     |--- images
        |--- testing_x48.ico
        |--- testing_x256.png
        |--- testing_x512.svg
  |--- uis
     |--- __init__.py
     |--- LoginRegisterEmail.ui     # 登录注册页
     |--- MianWindow.ui             # 系统主页
  |--- requirements.txt

设计登录注册页面

打开 Qt Designer工具,(工具位置在 Python 安装位置,如果是虚拟环境则在虚拟环境位置,如我的虚拟环境位置\QtLoginRegistration\.venv\Lib\site-packages\qt5_applications\Qt\bin\designer.exe,可右键添加到桌面快捷方式)

最终效果:

  • 登录页
    image

  • 注册页
    image

  • 忘记密码页
    image


第1步

设计登录页

  1. 新建 Widget
    image

  2. 添加组件(x1表示数量1)

    • Frame x2
    • StackedWidget x1
    • PushButton x4
    • Label x3
    • LineEdit x2
    • CheckBox x1
    • Vertical Line x1
    • Horizontal Spacer x1

    摆放位置并适当调整顺序,如下图:
    image

  3. 修改显示的文字,和输入提示
    image
    image

  4. 布局并添加标题和适当调整大小

    • 分别选中右侧对象树 QWidget QFrame QStackedWidget,然后使用栅格布局
      image

    • 设置 QWidget大小
      image

    • 设置QWidget 标题
      image

    • 密码输入框,将模式切换为Password
      image

  5. 在左侧QFrame 中的 Qlabel中添加图片,并设置垂直居中(图片任意,宽高建议256px),图片下载可点这里去选择不过需要注意的是,此处后续将会换成使用资源的形式,目前是暂时使用文件的方式
    image

  6. 修改组件名称(建议修改)
    image

  7. 设置左侧QFrame 最大宽度,(看着舒服即可)
    image


第2步

设计注册页

  1. 选择 QStackedWidgetpage_2
    image

  2. 添加组件(x1表示数量1)

    • PushButton x2
    • Label x6
    • LineEdit x5
    • CheckBox x1
  3. 组件摆放和文字效果,并修改了组件名称
    image

  4. 设置一个内容为空的QLabel,最大高度 13
    image

  5. 设置发送按钮最小宽度65
    image

  6. 选中QStackedWidget,并使得当前显示 page_2 然后使用栅格布局
    image

  7. 设置注册后直接登录为选中
    image

  8. 密码输入框,将模式切换为Password
    image


第3步

设计忘记密码页

  1. 选择QStackedWidget,插入一个页面page_3
    image

  2. 添加组件(x1表示数量1)

    • PushButton x2
    • Label x5
    • LineEdit x4
    • CheckBox x1
  3. 组件摆放和文字效果,并修改了组件名称
    image

  4. 设置一个内容为空的QLabel,最大高度 13(同注册页)

  5. 设置发送按钮最小宽度65(同注册页)

  6. 选中QStackedWidget,并使得当前显示 page_3 然后使用栅格布局(同注册页)

  7. 密码输入框,将模式切换为Password


第4步

除了登录,还需要一个系统主页,登录后显示

  1. 新建 Widget

  2. 添加组件(x1表示数量1)

    • Label x2
    • QPushButton x1
  3. 设置 QLabel 显示内容垂直居中

  4. 设置按钮显示,最终效果如下
    image

GitHub完整代码
本文章的原文地址
GitHub主页

posted @ 2024-01-31 17:48  星尘的博客  阅读(543)  评论(0编辑  收藏  举报