pyqt5与yolov5进行视频检测(一)——登录操作

项目效果展示

一、登录界面

二、主界面

目前在更新中。。。

一、设计

二、登录代码

注意:下面会导入主界面的包,图片资源自己设计一下,密码保存时没设计加密,需要自行设计

main_window主界面下文会设计
from main_window import MWindow

数据库设计

model.py

from peewee import Model, PrimaryKeyField, CharField, TextField, BooleanField, IntegerField, DateTimeField, \MySQLDatabasedatabase = MySQLDatabase("qt_yolov5", host="localhost", port=3306,user="root", password="123456")class BaseModel(Model):class Meta:database = databaseclass CheckRecordModel(BaseModel):id = PrimaryKeyField()label = CharField(max_length=32, help_text='标签')time = IntegerField(default=32, help_text='时间')save_path = CharField(max_length=128, help_text='图片路径')enabled = BooleanField(default=False, help_text='启用')class UserModel(BaseModel):id = PrimaryKeyField()user_name = CharField(max_length=32, help_text='用户')password = CharField(max_length=32, help_text='密码')enabled = BooleanField(default=True, help_text='启用')if __name__ == '__main__':database.connect()database.create_tables([CheckRecordModel])database.create_tables([UserModel])# tp = UserModel(user_name='aa', password='123456')# tp.save()s = UserModel.select().where(UserModel.user_name == 'bb')if s:print(s[0].user_name)print(list(s))database.close()
import random
import sysfrom PyQt5.QtWidgets import QApplication, QWidget, QDialog, QLineEdit, QLabel, QPushButton, QMainWindow
from PyQt5.QtCore import QTimer, QSize
from PyQt5.QtGui import QFont, QPalette, QBrush, QPixmap, QIcon
from main_window import MWindow
from model import UserModelclass LoginWindow(QMainWindow):def __init__(self):super().__init__()self.init_ui()def init_ui(self):self.resize(800, 500)self.setWindowTitle('login')head = QLabel('人工智能视觉检测系统', self)  # 140,50 410,50head.move(280, 30)head.resize(450, 50)head.setStyleSheet("font-family:'隶书';font-size:44px;font-weight: bold;")user_label = QLabel('用户名', self)  # 180 140 70 30user_label.resize(70, 30)user_label.move(420, 140)user_label.setStyleSheet("font-family:'楷体';font-size:22px;font-weight: bold;")pwd_label = QLabel('密码', self)  # 180 200 70 ,30pwd_label.resize(70, 30)pwd_label.move(420, 220)pwd_label.setStyleSheet("font-family:'楷体';font-size:22px;font-weight: bold;")self.user = QLineEdit(parent=self)  # 260 140 210 30self.user.resize(210, 30)self.user.move(500, 140)self.user.setPlaceholderText("请输入至少5位的用户名")self.pwd = QLineEdit(parent=self)  # 260 200 210 30self.pwd.resize(210, 30)self.pwd.move(500, 220)self.pwd.setStyleSheet("background-color: #F6F6F6;")self.pwd.setPlaceholderText("请输入至少5位的密码")  # F6F6F6self.pwd.setEchoMode(QLineEdit.Password)self.visible_btn = QPushButton(parent=self)  ##############self.visible_btn.move(680, 220)self.visible_btn.resize(30, 30)self.visible_btn.setIcon(QIcon('src/pwd_vi.jpg'))  # 设置按钮的图片self.visible_btn.setIconSize(QSize(25, 25))  # 设置图片的尺寸self.visible_btn.setStyleSheet("border: 1px solid transparent;")  ###############login_btn = QPushButton('登录', self)  # 200 280 90 30login_btn.resize(90, 30)login_btn.move(420, 310)login_btn.setStyleSheet("font-family:'宋体';font-size:18px;text-align:center;")register_btn = QPushButton('注册', self)  # 370 280 90 30register_btn.resize(90, 30)register_btn.move(620, 310)register_btn.setStyleSheet("font-family:'宋体';font-size:18px;text-align:center;")palette = QPalette()palette.setBrush(QPalette.Background, QBrush(QPixmap("src/login.png")))self.setPalette(palette)login_btn.clicked.connect(self.login_btn_clicked)register_btn.clicked.connect(self.register_btn_clicked)self.visible_btn.clicked.connect(self.password_visibility)def login_btn_clicked(self):user_name = self.user.text()user_pwd = self.pwd.text()if not user_name or not user_pwd:Dialog("请输入完整信息!", 1, w=300).start()else:s = UserModel.select().where(UserModel.user_name == user_name)if s:if s[0].user_name == user_name and s[0].password == user_pwd:Dialog("登录成功!", 2).start()self.open_main_window()else:Dialog("密码不正确!", 1).start()else:Dialog("该用户不存在!", 1, w=280).start()def register_btn_clicked(self):user_name = self.user.text()user_pwd = self.pwd.text()s = UserModel.select().where(UserModel.user_name == user_name)if s:Dialog("用户名已存在!", 1, w=280).start()else:if len(user_pwd) >= 5 and len(user_name) >= 5:tp = UserModel(user_name=user_name, password=user_pwd)tp.save()Dialog("注册成功!", 1, w=280).start()self.open_main_window()else:Dialog("请重新注册!", 1, w=280).start()def password_visibility(self):if self.pwd.echoMode() == QLineEdit.Password:self.pwd.setEchoMode(QLineEdit.Normal)self.visible_btn.setIcon(QIcon('src/pwd_in.jpg'))  # 设置按钮的图片self.visible_btn.setIconSize(QSize(25, 25))  # 设置图片的尺寸else:self.pwd.setEchoMode(QLineEdit.Password)self.visible_btn.setIcon(QIcon('src/pwd_vi.jpg'))  # 设置按钮的图片self.visible_btn.setIconSize(QSize(25, 25))  # 设置图片的尺寸def open_main_window(self):self.close()main_window = MWindow()main_window.show()class Dialog(QDialog):def __init__(self, msg, s: int = 2, x=240, y=120, w=250, h=50, color=None):super().__init__()self.msg = msgself.setWindowTitle("login")self.s = sself.x, self.y, self.w, self.h = x, y, w, h  # 左上角坐标和长宽self.color = self.random_color() if not color else colorself.resize(self.w, self.h)def random_color(self):return "#{:06x}".format(random.randint(0, 0xFFFFFF))def add_text(self):label = QLabel(self.msg, self)label.setStyleSheet("text-align:center;")def edit_style(self):style = (f"border: 1px solid transparent;"f"font-family:'Times New Roman';"f"font-size:40px;color:{self.color};"f"font-weight: bold;")self.setStyleSheet(style)def start(self):self.edit_style()self.add_text()self.timer = QTimer(self)  # 设置定时器,s秒后关闭弹窗self.timer.timeout.connect(self.close)self.timer.start(self.s * 1000)self.exec_()if __name__ == '__main__':app = QApplication(sys.argv)w = LoginWindow()w.show()app.exec_()

三、登录效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/14074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无线通信的穿墙能力主要取决于哪些指标

无线通信的穿墙能力是指无线信号在穿越建筑物墙壁时,其信号衰减程度以及能否维持足够强度以进行稳定通信的能力。穿墙能力的好坏直接影响到无线通信在室内环境中的覆盖范围和使用体验。 一、无线信号的频率 无线信号的频率是影响穿墙能力的重要因素之一。一般来说…

工行音视频服务平台建设与应用经验

近些年来,伴随着技术能力的积累突破,音视频服务开始蓬勃生长走进千家万户,使用远程视频通话、观看各类视频直播逐渐成为人们的日常,而金融服务作为社会生活的重要组成部分,自然需要积极拥抱应用新技术。 如今&#xff…

20232820 2023-2024-2 《网络攻防实践》实践十一报告

20232820 2023-2024-2 《网络攻防实践》实践十一报告 1.实践内容 web浏览器渗透攻击 任务:使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程 取证分析实践—网页木马攻击场景分析 攻防对抗实践—web浏览…

非关系型数据库NOSQL

文章目录 1. NOSQL 概述2. 相关理论基础2.1 一致性2.2 分区2.3 存储分布2.4 查询模型 3. NOSQL 数据库的种类3.1 文档存储3.2 键值存储3.3 列存储3.3 图存储 4. NOSQL 应用案例和新技术4.1 HBase 数据库4.2 云数据库 GeminiDB 非关系型的数据库 NOSQL (Not Only SQL)是对不同于…

linux-x86_64-musl 里面的musl是什么意思?

在一些开源库里面可以看到,linux-x86_64-musl类似于这样的字符串,这个musl是什么意思呢? 在字符串 "linux-x86_64-musl" 中,musl 指的是 musl libc,这是一个轻量级的 C 标准库实现。 让我们来拆解一下这个字…

Unity性能优化工具介绍

文章目录 一.Stats组件1.Audio音频的数据组件:2.图形数据 二.Profiler 性能分析器 一.Stats组件 Unity自带Statistics(统计数据),Game视窗中点击Stats打开 1.Audio音频的数据组件: 1):Level 声音强度 单位是分贝(dB) 表示音频听声音的大小,是闪烁波动的. 2):SDPload 数据信…

阅读笔记——《AFLNeTrans:状态间关系感知的网络协议模糊测试》

【参考文献】洪玄泉,贾鹏,刘嘉勇.AFLNeTrans:状态间关系感知的网络协议模糊测试[J].信息网络安全,2024,24(01):121-132.【注】本文仅为作者个人学习笔记,如有冒犯,请联系作者删除。 目录 摘要 1、引言 2、背景及动机 2.1、网络协议实现程…

每日AIGC最新进展(9):定制化多主题文本到视频的生成、3D动漫角色生成、具有多种几何形状和纹理细节的3D高斯引导服装合成

Diffusion Models专栏文章汇总:入门与实战 DisenStudio: Customized Multi-subject Text-to-Video Generation with Disentangled Spatial Control 本文提出了一个名为DisenStudio的框架,用于定制化多主题文本到视频的生成。该框架旨在解决现有文本到视频生成模型在处理多主题…

C++小病毒

C小病毒&#xff08;注&#xff1a;对电脑无过大伤害&#xff09; 短短行&#xff0c;创造奇迹&#xff01; 把这个文件命名为virus.exe就可以使用了。 #include<bits/stdc.h> #include<windows.h> using namespace std; int main() {HWND hwnd GetForegroundW…

Unity射击游戏开发教程:(24)创造不同的敌人

在这篇文章中,我们将讨论添加一个可以承受多次攻击的新敌人和一些动画来使事情变得栩栩如生。敌人没有任何移动或射击行为。这将有助于增强未来敌人的力量。 我们将声明一个 int 来存储敌人可以承受的攻击数量,并将其设置为 3。

PDF24 Creator v11.12.1软件安装教程(附软件下载地址)

软件简介&#xff1a; 软件【下载地址】获取方式见文末。注&#xff1a;推荐使用&#xff0c;更贴合此安装方法&#xff01; PDF24 Creator v11.12.1是一款免费、简便实用的多功能 PDF 工具。用户可通过直观拖放界面轻松组合、编辑和处理PDF文件。功能包括合并、分割、添加、…

Java开发工具类(JDK、Hutool、Guava)

目录 Java开发常用的工具类1、JDK自带程序读取控制台输入内容&#xff08;调试程序或者学习的时候比较有用&#xff09;Arrays工具类 数组转集合Collections 集合工具类 排序Collections 集合工具类 查找Lambda表达式 操作集合 收集、转map、分组 2、Apache 的 commons-lang3 和…

一文解读:OA中会议管理功能,帮助设计师看清楚门道

会议管理是OA系统中的重要功能之一&#xff0c;它涉及到会议的组织、安排、记录和跟进等方面。本文将从以下四个方面介绍会议管理在OA系统中的功能、流程、设计注意事项和所涉界面。 一、OA中会议管理的功能 OA中常用的会议功能如下&#xff1a; 会议预约&#xff1a;OA系统提…

RedisTemplate操作Redis, 看这一篇文章就够了

文章目录 1. String 命令1.1 添加缓存1.2 设置过期时间(单独设置)1.3 获取缓存值1.4 删除key1.5 顺序递增1.6 顺序递减1.7 常用的 2. Hash命令2.1 添加缓存2.2 设置过期时间(单独设置)2.3 添加一个Map集合2.4 提取所有的小key2.5 提取所有的value值2.6 根据key提取value值2.7 获…

1812 java二手汽车销售管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp 二手汽车销售管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助采用了java设计&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用web模式&#xff0c;系统主要采用B/S模式 开发。开发环境为TOMCAT7.0,Myeclipse8…

【优选算法】模拟 {经验总结;相关编程题解析}

一、经验总结 模拟题型的算法原理相对简单&#xff0c;就是依葫芦画瓢&#xff1a;题目中怎样描述&#xff0c;算法就怎样执行。考验的主要是将实际问题转换为代码的能力。 但是模拟题型并不是只能傻乎乎的按步骤编码&#xff0c;也可以先将模拟算法的流程通过举例或绘图演示…

Excel插入多行VBA实现

我们还可以利用 VBA&#xff08;Visual Basic for Applications&#xff09;宏语言&#xff0c;在 Excel 中写一个 VBA 宏来自动插入多行数据。这种方法可以方便我们自定义需要插入的行数和插入位置。下面是编写 VBA 宏的步骤&#xff1a; 1、按下Alt F11快捷键&#xff0c;打…

VS QT 里头文件的<>和““的区别

今天在跑项目的时候遇到这么个问题&#xff0c;在添加api宏定义的时候&#xff0c;不加显示无法识别的外部错误&#xff0c;加了显示找不到文件。反正就是怎么都是错的&#xff0c;但是我检查了CmakeLists、模块所在文件夹、项目路径都是没有问题的。非常奇怪。 然后就开始尝试…

linux安装KubeSphere

linux安装KubeSphere 介绍 KubeSphere 是在目前主流容器调度平台 Kubernetes 之上构建的企业级分布式多租户容器平台&#xff0c;提供简单易用的操作界面以及向导式操作方式&#xff0c;在降低用户使用容器调度平台学习成本的同时&#xff0c;极大减轻开发、测试、运维的日常…

通联支付API集成(适用于SpringBoot)

目标&#xff1a; 学习如何使用Java与通联支付API进行交互 实现一个简单的支付下单和查询订单状态的示例 所需材料&#xff1a; 通联支付API文档 官方文档https://aipboss.allinpay.com/know/devhelp/main.php?pid38#mid313 通联支付加签代码SybUtil package com.allin…