当前位置: 首页 > article >正文

基于深度学习的视觉检测小项目(十五) 用户的登录界面

        用户管理离不开的是消息框(QMessageBox)和对话框(QDialog),比如对话框用于用户名和密码输入,消息框用于提示登录成功、密码错误。

• 基础知识:PySide6(PyQT5)的常用对话框类-CSDN博客

• 组态前端画面:

        在designer中新建QDialog界面,命名为user_login.ui,按照本项目的命名规律,将界面的主部件命名为form_base,顶部边框命名为from_top,主显示区命名为form_main:

        在这个界面中新用到了列表框(QComboBox),单行文本编辑框(QLineEdit)。在项目的样式表文件style_uiproj.qss中添加这两个类的通用设置,并且在颜色设置文件color_setting.json和色卡文件color_card.json中增添新的设置项。

style_uiproj.qss中新增的内容:

/*下拉选项框默认色 */
QComboBox {
    background-color: 下拉框底色;
    color: 下拉文字色;
    通用凹边框;
}

/*文字输入框默认色*/
QLineEdit {
    background-color: 输入框底色;
    color: 输入文字色;
    通用凹边框;
}

color_setting.json中新增的内容:

"下拉框底色": "黑下拉框底色",
"下拉文字色": "黑下拉文字色",
"输入框底色": "黑输入框底色",
"输入文字色": "黑输入文字色"

color_card.json中新增的内容:

"黑输入框底色": "#a0a0f6",
"黑输入文字色": "#282828",
"黑下拉框底色": "#a6afb8",
"黑下拉文字色": "#5f5f5f",
"通用凹边框": "border-top: 3px solid #0d0d0d;border-left: 3px solid #0d0d0d;border-right: 2px solid #303030;border-bottom: 2px solid #303030"

经过以上设置,新建的对话框就继承了项目的整体显示风格。

        如果需要改变整体的显示风格或修改局部的颜色值,只需修改color_setting.json或color_card.json即可。

• 组态后端代码:

        将user_login.ui文件用uic工具转换为同名的user_login.py文件,并编写后端文件user_login_func.py。

user_login_func.py的内容:

# user_login(用户登录画面的后端功能函数)
from PySide6.QtCore import Slot
from PySide6.QtWidgets import QApplication, QDialog, QMessageBox
from UI_proj.functions.get_style_sheet import get_style_sheet   # 导入获取样式表的函数
from UI_proj.functions.form_center import center   # 导入窗口居中函数
from . import user_login  # 导入使用uis工具从start_up.ui生成而来的start_up.py文件
from DB_proj import db_set   # 导入数据库设置db_set.py

# 定义窗口类
class FormLogin(QDialog, user_login.Ui_form_base):
    def __init__(self):
        super().__init__()
        self.setupUi(self)   # 加载窗口
        self.run()   # 初始化运行窗口

    def run(self):   # 窗口的运行函数
        # 设置窗口样式
        def set_style_sheet():  # 设置窗口样式
            style_sheet = get_style_sheet('settings/color_card.json', 'settings/color_setting.json', 'settings/style_uiproj.qss')  # 获取项目级别的样式表
            style_sheet += get_style_sheet('settings/color_card.json', 'settings/color_setting.json', 'ui_forms/user_login/style_user_login.qss')  # 获取本画面的本地样式表并与项目级别样式表合并

            self.setStyleSheet(style_sheet)
        set_style_sheet()  # 设置窗口样式

        # 设置窗口居中
        center(self)  # 设置窗口居中

        # 设置所有用户名到下拉框
        def set_users():
            self.combo_users.clear()  # 清空下拉框
            users = db_set.get_users_name()   # 获取所有用户名
            for user in users:
                self.combo_users.addItem(user)  # 添加用户名到下拉框
        set_users()  # 设置所有用户名

        # 按钮“进入系统”点击事件连接的槽函数
        @Slot()
        def on_btn_login_clicked():
            user = self.combo_users.currentText()  # 获取当前用户名
            input_passwd = self.lineEdit_in_passwd.text()  # 获取当前输入密码
            current_passwd = db_set.get_user_info(user)["password"]  # 获取当前用户密码
            if input_passwd == current_passwd:  # 判断输入密码是否与当前用户密码一致
                QMessageBox.information(self, "登录成功", "登录成功")  # 弹出提示框
                self.close()  # 关闭窗口
            else:
                QMessageBox.warning(self, "登录错误", "用户名或密码错误")  # 弹出警告框

            self.lineEdit_in_passwd.setText("")  # 清空输入框
        self.btn_logoin.clicked.connect(on_btn_login_clicked)  # 按钮“进入系统”点击事件连接槽函数

        # 按钮“取消”点击事件连接的槽函数
        @Slot()
        def on_btn_cancel_clicked():  # 按钮“取消”点击事件连接的槽函数
            self.lineEdit_in_passwd.setText("")  # 清空输入框
            self.close()  # 关闭窗口
        self.btn_cancel.clicked.connect(on_btn_cancel_clicked)  # 按钮取消点击事件连接槽函数




        以上代码实现了用户登录的基本功能,目前的用户密码是明文存储的,如果需要加密可以使用现成的加密库,或者用字符移位等方法进行简单加密。


http://www.kler.cn/a/515696.html

相关文章:

  • Mac安装Homebrew
  • 【组件库】使用Vue2+AntV X6+ElementUI 实现拖拽配置自定义vue节点
  • 概率论里的特征函数,如何用卷积定理去理解
  • 无人机在城市执法监管中的应用:技术革新与监管挑战
  • 一文大白话讲清楚webpack基本使用——11——chunkIds和runtimeChunk
  • 计算机毕业设计hadoop+spark股票基金推荐系统 股票基金预测系统 股票基金可视化系统 股票基金数据分析 股票基金大数据 股票基金爬虫
  • 利用MetaNeighbor验证重复性和跨物种分群
  • 计算机网络 (53)互联网使用的安全协议
  • 亚博microros小车-原生ubuntu支持系列:7-脸部检测
  • 数据库开发支持服务
  • 运算放大器应用电路设计笔记(六)
  • Linux网络 高级IO
  • Android BitmapShader简洁实现马赛克,Kotlin(一)
  • 如何在 macOS 上安装 PIP ?
  • 操作系统(Linux Kernel 0.11Linux Kernel 0.12)解读整理——内核初始化(main init)之硬盘初始化
  • 我谈概率论与数理统计的知识体系
  • Jenkins-获取build用户信息
  • Spring Bean Scope 全面解析:如何根据职责选择合适的作用范围?
  • STM32 GPIO工作模式
  • Stable diffusion 都支持哪些模型
  • 002-SpringBoot整合AI(Alibaba)
  • 总结4..
  • vim的介绍
  • Harmony Next 支持创建分身
  • HMV Challenges 022 Writeup
  • web前端5--css字体样式