This commit is contained in:
scout 2024-12-04 15:53:07 +08:00
parent 0bb246e76f
commit b186773a12
3 changed files with 16 additions and 18 deletions

View File

@ -1,5 +1,2 @@
opencv-python==4.8.1.78
mediapipe==0.10.18
PyQt6==6.6.1
PyQt6-Qt6==6.6.1
PyQt6-sip==13.6.0
PyQt5==5.15.9

View File

@ -15,8 +15,8 @@ python -m pip install --upgrade pip
echo Installing requirements one by one...
echo Installing OpenCV...
python -m pip install opencv-python==4.8.1.78
echo Installing PyQt6...
python -m pip install PyQt6==6.6.1 PyQt6-Qt6==6.6.1 PyQt6-sip==13.6.0
echo Installing PyQt5...
python -m pip install PyQt5==5.15.9
echo Starting application...
python workspace_monitor.py

View File

@ -6,11 +6,11 @@ import traceback
import logging
import os
from datetime import datetime
from PyQt6.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout,
from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout,
QHBoxLayout, QPushButton, QLabel, QSpinBox,
QStyle, QProgressBar, QSystemTrayIcon, QMenu)
from PyQt6.QtCore import Qt, QTimer
from PyQt6.QtGui import QImage, QPixmap, QIcon, QFont
QStyle, QProgressBar, QSystemTrayIcon, QMenu, QMessageBox)
from PyQt5.QtCore import Qt, QTimer
from PyQt5.QtGui import QImage, QPixmap, QIcon, QFont
# 设置日志
logging.basicConfig(
@ -42,7 +42,7 @@ try:
# 系统托盘
self.tray_icon = QSystemTrayIcon(self)
self.tray_icon.setIcon(self.style().standardIcon(QStyle.StandardPixmap.SP_ComputerIcon))
self.tray_icon.setIcon(self.style().standardIcon(QStyle.SP_ComputerIcon))
self.create_tray_menu()
self.tray_icon.show()
@ -79,8 +79,8 @@ try:
# 标题
title_label = QLabel("工位监控系统")
title_label.setFont(QFont('Arial', 16, QFont.Weight.Bold))
title_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
title_label.setFont(QFont('Arial', 16, QFont.Bold))
title_label.setAlignment(Qt.AlignCenter)
main_layout.addWidget(title_label)
# 摄像头预览
@ -89,7 +89,7 @@ try:
preview_layout = QVBoxLayout(preview_container)
self.camera_label = QLabel()
self.camera_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.camera_label.setAlignment(Qt.AlignCenter)
self.camera_label.setMinimumHeight(480)
preview_layout.addWidget(self.camera_label)
@ -206,7 +206,7 @@ try:
self.tray_icon.activated.connect(self.tray_icon_activated)
def tray_icon_activated(self, reason):
if reason == QSystemTrayIcon.ActivationReason.DoubleClick:
if reason == QSystemTrayIcon.DoubleClick:
self.show()
def update_frame(self):
@ -271,7 +271,7 @@ try:
if self.no_face_duration > self.timeout:
self.status_label.setText(f"状态: 锁定屏幕 - {datetime.now()}")
self.tray_icon.showMessage("工位监控", "系统即将锁定", QSystemTrayIcon.MessageIcon.Warning)
self.tray_icon.showMessage("工位监控", "系统即将锁定", QSystemTrayIcon.Warning)
self.lock_windows()
# 重置所有状态
self.last_face_time = time.time()
@ -285,10 +285,10 @@ try:
rgb_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
h, w, ch = rgb_frame.shape
bytes_per_line = ch * w
qt_image = QImage(rgb_frame.data, w, h, bytes_per_line, QImage.Format.Format_RGB888)
qt_image = QImage(rgb_frame.data, w, h, bytes_per_line, QImage.Format.RGB888)
scaled_pixmap = QPixmap.fromImage(qt_image).scaled(
self.camera_label.size(),
Qt.AspectRatioMode.KeepAspectRatio
Qt.KeepAspectRatio
)
self.camera_label.setPixmap(scaled_pixmap)
@ -306,6 +306,7 @@ try:
self.start_stop_btn.setStyleSheet("background-color: #ff4444;")
self.status_label.setText("状态: 正在监控")
self.timer.start(30)
self.tray_icon.showMessage("工位监控", "监控已开始", QSystemTrayIcon.Information)
self.tray_icon.showMessage("工位监控", "监控已开始", QSystemTrayIcon.MessageIcon.Information)
else:
self.running = False