From ef6ff0d2b43e802fdbcea131bae7ebe27a1018a6 Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Tue, 18 Feb 2025 09:18:58 +0100 Subject: [PATCH] [classifier] show progress dialog while refreshing --- fixtracks/widgets/classifier.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/fixtracks/widgets/classifier.py b/fixtracks/widgets/classifier.py index 8f5aa4f..5d02c94 100644 --- a/fixtracks/widgets/classifier.py +++ b/fixtracks/widgets/classifier.py @@ -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"