[pyside] switch to pyside instead of pyqt

This commit is contained in:
Jan Grewe 2025-01-21 09:06:23 +01:00
parent 5dd44512df
commit 4e7ddd468c
7 changed files with 37 additions and 39 deletions

View File

@ -1,6 +1,6 @@
import logging
from PyQt6.QtWidgets import QWidget, QStackedLayout, QSizePolicy
from PyQt6.QtCore import Qt
from PySide6.QtWidgets import QWidget, QStackedLayout, QSizePolicy
from PySide6.QtCore import Qt
from fixtracks.taskwidgets import FixTracks
from fixtracks.detectionmerge import MergeDetections

View File

@ -1,16 +1,15 @@
import logging
from PyQt6.QtWidgets import QWidget, QGridLayout, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QComboBox, QSizePolicy, QSpinBox, QGraphicsView, QGraphicsScene, QGraphicsLineItem, QSpacerItem, QProgressDialog, QProgressBar
from PyQt6.QtCore import QThreadPool, Qt, pyqtSignal, pyqtSlot
from PyQt6.QtGui import QImage, QPixmap, QColor, QPen
from PySide6.QtCore import Qt, QThreadPool, Signal, Slot
from PySide6.QtWidgets import QWidget, QGridLayout, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QComboBox, QSizePolicy, QSpinBox, QGraphicsView, QGraphicsScene, QGraphicsLineItem, QSpacerItem, QProgressDialog, QFileDialog
from PySide6.QtGui import QImage, QPixmap, QColor, QPen
from fixtracks.util import ImageReader, DataFrameReader, Merger
from PyQt6.QtWidgets import QFileDialog
class VideoPreview(QWidget):
def __init__(self, left=True, parent=None):
super().__init__(None)
super().__init__(parent)
self._image = None
self._line_pen = QPen(QColor.fromString("red"), 4)
self._view = QGraphicsView()
@ -26,7 +25,7 @@ class VideoPreview(QWidget):
self._scene = QGraphicsScene()
self._pixmap = self._scene.addPixmap(QPixmap.fromImage(img))
self._view.setScene(self._scene)
self._view.fitInView(self._scene.sceneRect(), mode=Qt.AspectRatioMode.KeepAspectRatio)
self._view.fitInView(self._scene.sceneRect(), aspectRadioMode=Qt.AspectRatioMode.KeepAspectRatio)
image_rect = self._pixmap.boundingRect()
start_x = image_rect.right() if self._left else image_rect.left()
start_y = image_rect.top()
@ -48,7 +47,7 @@ class VideoPreview(QWidget):
class MergeDetections(QWidget):
back = pyqtSignal()
back = Signal()
def __init__(self, parent=None):
super().__init__(parent)
@ -276,7 +275,7 @@ class MergeDetections(QWidget):
self._progressDialog.setAutoClose(True)
self._progressDialog.setRange(0, 100)
self._progressDialog.setLabelText("Merging detections (will take a while, be patient):")
self._progressDialog.setCancelButtonText("Cancel")
self._progressDialog.setCancelButtonText("Cancel")
self._progressDialog.setWindowModality(Qt.WindowModality.WindowModal)
self._progressDialog.canceled.connect(self.on_mergeCancelled)
self._progressDialog.show()
@ -284,19 +283,19 @@ class MergeDetections(QWidget):
self._merger.signals.finished.connect(self.on_mergeDone)
self.threadpool.start(self._merger)
@pyqtSlot()
@Slot()
def on_mergeCancelled(self):
logging.info("Cancel Button pressed! Requesting stop of merger")
self._merger.stop_request()
self._saveBtn.setEnabled(False)
@pyqtSlot(float)
@Slot(float)
def on_mergeProgress(self, value):
logging.debug(f"mergeProgress: {value * 100}%")
if self._progressDialog is not None:
self._progressDialog.setValue(int(value * 100))
@pyqtSlot(bool)
@Slot(bool)
def on_mergeDone(self, state):
logging.debug("Merging stopped with status %s", state)
if state:
@ -310,7 +309,6 @@ class MergeDetections(QWidget):
# preview_enabled = self.left_videocombo.currentIndex() > 0 and self.right_videocombo.currentIndex() > 0
# self._mergePreviewBtn.setEnabled(preview_enabled)
def on_save(self):
logging.debug("Save merge results")
if self._merger is not None:
@ -325,10 +323,10 @@ class MergeDetections(QWidget):
else:
logging.debug("Saving failed! Merger is None!")
def on_back(self):
logging.debug("Back button pressed!")
self._merger = None
self._left_data = None
self._right_data = None
self.back.emit()

View File

@ -1,6 +1,6 @@
from PyQt6.QtCore import QSize, Qt
from PyQt6.QtWidgets import QMainWindow, QWidget, QToolBar, QMenu, QMenuBar, QSizePolicy, QFileDialog
from PyQt6.QtGui import QKeySequence, QAction, QIcon
from PySide6.QtCore import QSize, Qt
from PySide6.QtWidgets import QMainWindow, QWidget, QToolBar, QMenu, QMenuBar, QSizePolicy, QFileDialog
from PySide6.QtGui import QKeySequence, QAction, QIcon
from fixtracks.centralwidget import CentralWidget

View File

@ -1,13 +1,13 @@
import logging
import pathlib
from PyQt6.QtWidgets import QWidget, QPushButton, QFileDialog, QSizePolicy, QGridLayout
from PyQt6.QtCore import pyqtSignal, Qt, QSize
from PyQt6.QtGui import QIcon, QAction, QPixmap
from PySide6.QtWidgets import QWidget, QPushButton, QFileDialog, QSizePolicy, QGridLayout
from PySide6.QtCore import Signal, Qt, QSize
from PySide6.QtGui import QIcon, QAction, QPixmap
class TasksWidget(QWidget):
clicked = pyqtSignal((str,))
clicked = Signal((str,))
def __init__(self, parent = None):
super().__init__(parent)

View File

@ -1,8 +1,8 @@
import logging
from PyQt6.QtWidgets import QWidget, QGridLayout, QVBoxLayout, QLabel, QPushButton, QFileDialog, QHBoxLayout, QComboBox, QSizePolicy
from PyQt6.QtCore import QThreadPool
from PyQt6.QtGui import QImage, QPixmap
from PySide6.QtWidgets import QWidget, QGridLayout, QVBoxLayout, QLabel, QPushButton, QFileDialog, QHBoxLayout, QComboBox, QSizePolicy
from PySide6.QtCore import QThreadPool
from PySide6.QtGui import QImage, QPixmap
from fixtracks.util import ImageReader

View File

@ -4,21 +4,21 @@ import cv2 as cv
import time
import pickle
import numpy as np
from PyQt6.QtCore import QRunnable, pyqtSlot, pyqtSignal, QObject
from PySide6.QtCore import QRunnable, Signal, QObject, Slot
from IPython import embed
class ProducerSignals(QObject):
finished = pyqtSignal(bool)
error = pyqtSignal(str)
finished = Signal(bool)
error = Signal(str)
# start = pyqtSignal(float)
# running = pyqtSignal()
progress = pyqtSignal(float)
progress2 = pyqtSignal((str, float, float))
progress = Signal(float)
progress2 = Signal((str, float, float))
class ImageReader(QRunnable):
finished = pyqtSignal(bool)
finished = Signal(bool)
def __init__(self, filename, frame=1000) -> None:
super().__init__()
@ -27,7 +27,7 @@ class ImageReader(QRunnable):
self._signals = ProducerSignals()
self._frame = None
@pyqtSlot()
@Slot()
def run(self):
'''
Your code goes in this function
@ -62,7 +62,7 @@ class ImageReader(QRunnable):
class DataFrameReader(QRunnable):
finished = pyqtSignal(bool)
finished = Signal(bool)
def __init__(self, filename) -> None:
super().__init__()
@ -70,7 +70,7 @@ class DataFrameReader(QRunnable):
self._signals = ProducerSignals()
self._dataframe = None
@pyqtSlot()
@Slot()
def run(self):
'''
Your code goes in this function
@ -244,11 +244,11 @@ class Merger(QRunnable):
with open(filename, 'wb') as f:
pickle.dump(self._merged, f)
@pyqtSlot()
@Slot()
def stop_request(self):
self._stopRequest = True
@pyqtSlot()
@Slot()
def run(self):
logging.info("Cutting left detections to limit %i", self._left_cut)
self.signals.progress.emit(0.0)

View File

@ -5,9 +5,9 @@ pyside6-rcc resources.qrc -o resources.py
import sys
import platform
import logging
from PyQt6.QtWidgets import QApplication
from PyQt6.QtCore import QSettings
from PyQt6.QtGui import QIcon
from PySide6.QtWidgets import QApplication
from PySide6.QtCore import QSettings
from PySide6.QtGui import QIcon
from fixtracks import fixtracks, info