test controllera

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
2026-05-10 21:52:34 +02:00
parent c38e71dec4
commit 651c150e23
2 changed files with 21 additions and 151 deletions

View File

@@ -2,10 +2,11 @@ from enum import Enum
from typing import Any
import logging
from PySide6.QtWidgets import QGridLayout, QHBoxLayout, QMainWindow, QStyle, QToolButton, QWidget, QVBoxLayout, QPushButton
from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QGridLayout, QHBoxLayout, QMainWindow, QStyle, QToolButton, QWidget, QVBoxLayout, QPushButton, QLabel
from PySide6.QtGui import QIcon, QPixmap
from PySide6.QtCore import Qt, QSize
from .video_stream.controller import VideoStreamController, FrameMetrics
logger = logging.getLogger(__name__)
class VideoMode(Enum):
@@ -70,13 +71,22 @@ class MainWindow(QMainWindow):
self.video_mode = VideoMode.STREAMING
logger.debug(f"Initial video mode: {self.video_mode}")
self.video_controller = VideoStreamController()
self.video_controller.change_source(0) # Start with default camera
self.video_controller.image_ready.connect(self.update_frame)
self.setup_ui()
self.video_controller.start()
def setup_ui(self):
self.central_widget = QWidget()
self.setCentralWidget(self.central_widget)
self.central_widget.setStyleSheet("background-color: #001e1e;")
self.video_label = QLabel(self.central_widget)
self.toolbar_widget = QWidget(self.central_widget)
self.toolbar_widget.setMinimumWidth(400)
self.toolbar_widget.setObjectName("bottomToolbar")
@@ -185,4 +195,12 @@ class MainWindow(QMainWindow):
def pause_video(self):
logger.debug("Pausing video")
self.video_mode = VideoMode.STOPPED
set_icon(self.action_button, "play")
set_icon(self.action_button, "play")
def closeEvent(self, event: Any) -> None:
logger.debug("Closing main window, cleaning up resources.")
self.video_controller.cleanup()
super().closeEvent(event)
def update_frame(self, frame):
self.video_label.setPixmap(QPixmap.fromImage(frame))