[classifier] show progress dialog while refreshing

This commit is contained in:
Jan Grewe 2025-02-18 09:18:58 +01:00
parent 2737fed192
commit ef6ff0d2b4

View File

@ -2,14 +2,13 @@ import logging
import numpy as np
from PySide6.QtWidgets import QWidget, QVBoxLayout, QTabWidget, QPushButton, QGraphicsView
from PySide6.QtWidgets import QSpinBox, QProgressBar, QGridLayout, QLabel, QCheckBox
from PySide6.QtCore import Signal, Slot, QRunnable, QObject, QThreadPool
from PySide6.QtWidgets import QSpinBox, QProgressBar, QGridLayout, QLabel, QCheckBox, QProgressDialog
from PySide6.QtCore import Qt, Signal, Slot, QRunnable, QObject, QThreadPool
from PySide6.QtGui import QBrush, QColor
import pyqtgraph as pg # needs to be imported after pyside to not import pyqt
from fixtracks.utils.trackingdata import TrackingData
from IPython import embed
class WorkerSignals(QObject):
error = Signal(str)
running = Signal(bool)
@ -327,7 +326,7 @@ class ConsistencyClassifier(QWidget):
self._proceedbtn = QPushButton("proceed")
self._proceedbtn.clicked.connect(self.proceed)
self._proceedbtn.setEnabled(False)
self._refreshbtn = QPushButton("refresh")
self._refreshbtn.clicked.connect(self.refresh)
self._refreshbtn.setEnabled(True)
@ -373,6 +372,11 @@ class ConsistencyClassifier(QWidget):
data : Trackingdata
The tracking data.
"""
self._progressDialog = QProgressDialog("Updating...", "Cancel", 0, 0, self)
self._progressDialog.setWindowModality(Qt.WindowModal)
self._progressDialog.setMinimumDuration(0)
self._progressDialog.setValue(0)
self._progressDialog.show()
self._data = data
self._all_pos = data.centerOfGravity()
self._all_orientations = data.orientation()
@ -391,6 +395,7 @@ class ConsistencyClassifier(QWidget):
self._assignedlabel.setText("0")
self._errorlabel.setText("0")
self._worker = None
self._progressDialog.close()
@Slot(float)
def on_progress(self, value):
@ -470,6 +475,7 @@ class ClassifierWidget(QTabWidget):
def consistency_tracker(self):
return self._consistency_tracker
@Slot()
def update(self):
self.consistency_tracker.setData(self._data)
@ -485,7 +491,6 @@ def as_dict(df):
def main():
test_size = False
import pickle
from IPython import embed
from fixtracks.info import PACKAGE_ROOT
datafile = PACKAGE_ROOT / "data/merged_small.pkl"