yolov5 + pyqt(登录界面)进行检测

一.界面显示

  1. 1.登录界面(输入账号和密码)

在这里插入图片描述

  1. 2.检测界面:

在这里插入图片描述

  1. 3.预览功能:

(1)单张图像检测
在这里插入图片描述
(2)视频检测
在这里插入图片描述
(3)暂停/继续检测
在这里插入图片描述
在这里插入图片描述
(4)结束检测
在这里插入图片描述
(5)结果保存
在这里插入图片描述

在这里插入图片描述
(6)在另外一个界面显示结果excel(下一步)
在这里插入图片描述

二.部分代码展示

main.py(登录界面):


```python
# self.pushButton.setShortcut(_translate("MainWindow", "enter")) #设置快捷键
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import QTimer

from PyQt5.QtWidgets import QMessageBox
from dl import Ui_MainWindow_one
from open_camera_main import *
from PyQt5.QtCore import Qt

from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class login_window(QtWidgets.QMainWindow, Ui_MainWindow_one):
    def __init__(self):
        super(login_window, self).__init__()
        self.setupUi(self)  # 创建窗体对象
        self.init()
        self.admin = "1"
        self.Password = "1"
        self.setWindowTitle('合肥超科电子')
        # 设置窗口图标
        self.setWindowIcon(QIcon('.UI/shw.ico'))


        #设置pushbutton的大小和颜色以及字体
        self.pushButton.setStyleSheet("QPushButton{font-family:'楷体';font-size:16px;color:rgb(0,0,0,255);}\
                QPushButton{background-color:rgb(170,200,50)}\ QPushButton:hover{background-color:rgb(50, 170, 200)}")
        self.pushButton_2.setStyleSheet("QPushButton{font-family:'楷体';font-size:16px;color:rgb(0,0,0,255);}\
                        QPushButton{background-color:rgb(170,200,50)}\ QPushButton:hover{background-color:rgb(50, 170, 200)}")
        self.pushButton_3.setStyleSheet("QPushButton{font-family:'楷体';font-size:16px;color:rgb(0,0,0,255);}\
                        QPushButton{background-color:rgb(170,200,50)}\ QPushButton:hover{background-color:rgb(50, 170, 200)}")


        #qlabel
        self.label.setStyleSheet("QPushButton{font-family:'楷体';font-size:16px;color:rgb(0,0,0,255);}\
                QPushButton{background-color:rgb(170,200,50)}\ QPushButton:hover{background-color:rgb(50, 170, 200)}")

    def init(self):
        self.pushButton.clicked.connect(self.login_button)  # 连接槽

        self.pushButton_2.clicked.connect(self.login_button_2)  # 连接槽
        self.pushButton_3.clicked.connect(self.login_button_3)  # 连接槽

    def login_button(self):

        if (self.lineEdit.text() == "") and self.lineEdit_2.text() == "":
            QMessageBox.warning(self, '警告', '账号或密码不能为空,请输入!')
            return None

        # if  self.password == self.lineEdit.text():
        if (self.lineEdit.text() == self.Password) and self.lineEdit_2.text() == self.admin:
            # Ui_Main = Open_Camera()  # 生成主窗口的实例
            # 1打开新窗口
            Ui_Main.show()
            # 2关闭本窗口
            self.close()
        else:
            QMessageBox.critical(self, '错误', '密码错误!')
            self.lineEdit.clear()
            self.lineEdit_2.clear()
            return None

    def login_button_2(self):
        self.close()

    def login_button_3(self):
        QMessageBox.warning(self, '账号密码提醒','账号:生日,密码:生日')

    def paintEvent(self, event):
        painter = QPainter(self)
        pixmap = QPixmap("./UI/qq.jpg")
        painter.drawPixmap(self.rect(), pixmap)



if __name__ == '__main__':
    from PyQt5 import QtCore

    QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)  # 自适应分辨率
    stylesheet = """
                Ui_MainWindow {
                    background-image: url("shw.jpg");
                    background-repeat: no-repeat;
                    background-position: center;
                }
            """


    app = QtWidgets.QApplication(sys.argv)
    app.setStyleSheet(stylesheet)

    window = login_window()
    Ui_Main = detect_window()  # 生成主窗口的实例

    shw = excel_shw()
    window.show()

    sys.exit(app.exec_())
dl.py(ui界面):

```python
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow_one(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(150, 50, 551, 141))
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(210, 210, 61, 21))
        self.label_2.setObjectName("label_2")
        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setGeometry(QtCore.QRect(210, 270, 51, 21))
        self.label_3.setObjectName("label_3")
        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit.setGeometry(QtCore.QRect(310, 210, 181, 21))
        self.lineEdit.setObjectName("lineEdit")
        self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit_2.setGeometry(QtCore.QRect(310, 270, 181, 20))
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.layoutWidget = QtWidgets.QWidget(self.centralwidget)
        self.layoutWidget.setGeometry(QtCore.QRect(190, 360, 367, 25))
        self.layoutWidget.setObjectName("layoutWidget")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.layoutWidget)
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.pushButton = QtWidgets.QPushButton(self.layoutWidget)
        self.pushButton.setObjectName("pushButton")
        self.horizontalLayout.addWidget(self.pushButton)
        spacerItem = QtWidgets.QSpacerItem(58, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.pushButton_2 = QtWidgets.QPushButton(self.layoutWidget)
        self.pushButton_2.setMinimumSize(QtCore.QSize(0, 23))
        self.pushButton_2.setObjectName("pushButton_2")
        self.horizontalLayout.addWidget(self.pushButton_2)
        spacerItem1 = QtWidgets.QSpacerItem(58, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem1)
        self.pushButton_3 = QtWidgets.QPushButton(self.layoutWidget)
        self.pushButton_3.setObjectName("pushButton_3")
        self.horizontalLayout.addWidget(self.pushButton_3)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-size:22pt; font-weight:600; color:#aa0000;\">欢迎使用合肥超科电子有限公司巡检</span></p></body></html>"))
        self.label_2.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-size:12pt;\">账号:</span></p></body></html>"))
        self.label_3.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-size:12pt;\">密码:</span></p></body></html>"))
        self.pushButton.setText(_translate("MainWindow", "登录"))
        self.pushButton_2.setText(_translate("MainWindow", "退出"))
        self.pushButton_3.setText(_translate("MainWindow", "提示"))

三.总结展望

该项目是这两天基于公司写的初版界面功能,因时间有限,所以还有些功能还没写入进去,后续想对两对线阵相机进行实时读取,进行检测,实时显示出里程信息,相机ID,以及缺陷类别.今年刚毕业入职,还有很多算法开发上的知识有待提升,期望和大家的交流.

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值