基于深度学习的视觉检测小项目(十五) 用户的登录界面
用户管理离不开的是消息框(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) # 按钮取消点击事件连接槽函数
以上代码实现了用户登录的基本功能,目前的用户密码是明文存储的,如果需要加密可以使用现成的加密库,或者用字符移位等方法进行简单加密。
原文地址:https://blog.csdn.net/xulibo5828/article/details/145174237
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!