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

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

        用户管理离不开的是消息框(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)  # 按钮取消点击事件连接槽函数

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

相关文章:

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

用户管理离不开的是消息框(QMessageBox)和对话框(QDialog),比如对话框用于用户名和密码输入,消息框用于提示登录成功、密码错误。 • 基础知识:PySide6(PyQT5)的常用对话…...

redis-排查命中率降低问题

1.命中率降低带来的问题 高并发系统,当命中率低于平常的的运行情况,或者低于70%时,会产生2个影响。 有大量的请求需要查DB,加大DB的压力;影响redis自身的性能 不同的业务场景,阈值不一样,一般…...

ui文件转py程序的工具

源博客连接: PyCharm中利用外部工具uic转成的py文件,里面全是C代码,并非python类型的代码,导致大量报错。。。_pyside6-uic为什么把ui转为了c-CSDN博客 如果想把ui文件转为py文件,首先设置pycharm的外部工具&#xf…...

Alluxio 联手 Solidigm 推出针对 AI 工作负载的高级缓存解决方案

作者:Wayne Gao, Yi Wang, Jie Chen, Sarika Mehta Alluxio 作为全球领先的 AI 缓存解决方案供应商, 提供针对 GPU 驱动 AI 负载的高速缓存。其可扩展架构支持数万个节点,能显著降低存储带宽的消耗。Alluxio 在解决 AI 存储挑战方面的前沿技…...

Oracle 数据库常见字段类型大全及详细解析

在工作期间会遇到数据库建表的业务,经常会使用复制粘帖等操作,而不清楚数据库的字段类型。本文记录了 Oracle 数据库常见字段类型,根据不同的数据需求,可以选择不同的字段类型来存储数据。 文章目录 一、字符类型(Char…...

U3D的.Net学习

Mono:这是 Unity 最初采用的方式,它将 C# 代码编译为中间语言 (IL),然后在目标平台上使用虚拟机 (VM) 将其转换为本地机器码执行。 IL2CPP:这是一种较新的方法,它会将 C# 代码先编译为 C 代码,再由 C 编译器…...

Tomcat下载配置

目录 Win下载安装 Mac下载安装配置 Win 下载 直接从官网下载https://tomcat.apache.org/download-10.cgi 在圈住的位置点击下载自己想要的版本 根据自己电脑下载64位或32位zip版本 安装 Tomcat是绿色版,直接解压到自己想放的位置即可 Mac 下载 官网 https://tomcat.ap…...

adb常用指令(完整版)

1、adb devices 查看是否连接到设备 2、adb install [-r] [-s] 安装app,-r强制,-s安装sd卡上 3、adb uninstall [-k] 卸载app,-k保留配置和参数 4、adb push 把本地文件上传设备 5、adb pull 下载文件到本地 6、cd D:\sdk\platform-tool…...

大数据学习(36)- Hive和YARN

&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦&#x1f91…...

C# ASP.NET MVC项目内使用ApiController

1.在App_Start文件夹新建WebApiConfig.cs文件,建立webApi路由的注册方法。 using System.Web.Http;namespace PrivilegeManager {public class WebApiConfig{public static void Register(HttpConfiguration config){config.MapHttpAttributeRoutes();config.Route…...

Kafka 入门与应用实战:吞吐量优化与与 RabbitMQ、RocketMQ 的对比

前言 在现代微服务架构和分布式系统中,消息队列作为解耦组件,承担着重要的职责。它不仅提供了异步处理的能力,还能确保系统的高可用性、容错性和扩展性。常见的消息队列包括 Kafka、RabbitMQ 和 RocketMQ,其中 Kafka 因其高吞吐量…...

“推理”(Inference)在深度学习和机器学习的语境

“推理”(Inference)在深度学习和机器学习的语境中,是指使用经过训练的模型对新数据进行预测的过程。将其简单地理解为“模型的应用阶段”。在这一阶段,我们不再进行模型训练,而是利用已训练好且保存下来的模型来获取对…...

字节腾讯阿里大厂面经汇总:Java集合(容器)大厂面试题及参考答案

ArrayList 的扩容机制以及删除操作的时间复杂度 ArrayList 是 Java 中非常常用的一个集合类,它是基于数组实现的动态数组。当我们创建一个 ArrayList 时,如果不指定初始容量,它会有一个默认的初始容量(通常是 10)。当我们向 ArrayList 中添加元素时,如果元素的数量达到了…...

数据结构(初阶)(一)----算法复杂度

算法复杂度 算法复杂度数据结构算法算法效率复杂度的概念 数据结构 数据结构(Data Structure)是计算机存储、组织数据的⽅式,指相互之间存在⼀种或多种特定关系的数据元素的集合。没有⼀种单⼀的数据结构对所有⽤途都有⽤,所以我们要学各式各样的数据结…...

构建高效稳定的网络环境

概述 网络技术是当今IT行业的重要组成部分,构建高效稳定的网络环境对于企业、个人和互联网发展至关重要。本文将探讨网络技术中的关键要素,包括网络协议、网络架构、网络安全和网络优化,并提供实用的技巧和最佳实践,以帮助您构建…...

使用Edge打开visio文件

使用Edge打开visio文件 打开Edge浏览器搜索‘vsdx edge’ 打开第一个搜索结果 Microsoft Support 根据上述打开的页面进行操作 第一步:安装Visio Viewer 第二步:添加注册表 桌面新增文本文件,将下面的内容放入新建文本中,修…...

ChatGPT Prompt 编写指南

一、第一原则:明确的意图​ 你需要明确地表达你的意图和要求,尽可能具体、描述性、详细地描述所需的上下文、你期望的结果等。你的要求越明确,越有希望获得你想要的答案。​ 糟糕的案例 ❌​ ​ 写一首关于 OpenAI 的诗。​ ​ 更好的案…...

蚁群算法 (Ant Colony Optimization) 算法详解及案例分析

蚁群算法 (Ant Colony Optimization) 算法详解及案例分析 目录 蚁群算法 (Ant Colony Optimization) 算法详解及案例分析1. 引言2. 蚁群算法 (ACO) 算法原理2.1 蚂蚁觅食行为2.2 算法步骤2.3 数学公式3. 蚁群算法的优势与局限性3.1 优势3.2 局限性4. 案例分析4.1 案例1: 旅行商…...

安卓动态设置Unity图形API

命令行方式 Unity图像api设置为自动,安卓动态设置Vulkan、OpenGLES Unity设置 安卓设置 创建自定义活动并将其设置为应用程序入口点。 在自定义活动中,覆盖字符串UnityPlayerActivity。updateunitycommandlineararguments (String cmdLine)方法。 在该方法中,将cmdLine…...

通信协议—WebSocket

一、WebSocket编程概念 1.1 什么是WebSocket WebSocket 是一种全双工通信协议,允许在客户端(通常是浏览器)和服务器之间建立持久连接,以实现实时的双向通信。它是 HTML5 标准的一部分,相比传统的 HTTP 请求&#xff…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...