mirror of
https://github.com/283375/arcaea-offline-ocr-model.git
synced 2025-04-21 21:40:17 +00:00
impr: better dialog when loading samples
This commit is contained in:
parent
5a5b0887c3
commit
01b8b2e26c
@ -1,6 +0,0 @@
|
|||||||
from PySide6.QtWidgets import QListWidget
|
|
||||||
|
|
||||||
|
|
||||||
class SamplesListWidget(QListWidget):
|
|
||||||
def __init__(self, parent=None):
|
|
||||||
super().__init__(parent)
|
|
@ -3,7 +3,13 @@ from pathlib import Path
|
|||||||
|
|
||||||
from PySide6.QtCore import QByteArray, QMimeData, Qt
|
from PySide6.QtCore import QByteArray, QMimeData, Qt
|
||||||
from PySide6.QtGui import QDrag, QPixmap
|
from PySide6.QtGui import QDrag, QPixmap
|
||||||
from PySide6.QtWidgets import QListWidget, QListWidgetItem, QMessageBox, QProgressDialog
|
from PySide6.QtWidgets import (
|
||||||
|
QApplication,
|
||||||
|
QListWidget,
|
||||||
|
QListWidgetItem,
|
||||||
|
QMessageBox,
|
||||||
|
QProgressDialog,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class SamplesListWidget(QListWidget):
|
class SamplesListWidget(QListWidget):
|
||||||
@ -19,12 +25,19 @@ class SamplesListWidget(QListWidget):
|
|||||||
self.setDragEnabled(True)
|
self.setDragEnabled(True)
|
||||||
self.setSelectionMode(QListWidget.SelectionMode.MultiSelection)
|
self.setSelectionMode(QListWidget.SelectionMode.MultiSelection)
|
||||||
|
|
||||||
def setSamples(self, samples: list[Path]):
|
def setSamples(self, samples: list[Path], *, cancellable: bool = True):
|
||||||
self.clear()
|
self.clear()
|
||||||
|
|
||||||
samplesNum = len(samples)
|
samplesNum = len(samples)
|
||||||
progressDialog = QProgressDialog("", "Abort", 0, samplesNum, self)
|
progressDialog = QProgressDialog("", "Abort", 0, samplesNum, self)
|
||||||
|
progressDialog.setWindowFlag(Qt.WindowType.WindowMinimizeButtonHint, False)
|
||||||
|
progressDialog.setWindowFlag(Qt.WindowType.WindowMaximizeButtonHint, False)
|
||||||
|
progressDialog.setWindowFlag(Qt.WindowType.WindowCloseButtonHint, False)
|
||||||
progressDialog.setWindowModality(Qt.WindowModality.ApplicationModal)
|
progressDialog.setWindowModality(Qt.WindowModality.ApplicationModal)
|
||||||
|
if not cancellable:
|
||||||
|
progressDialog.setCancelButton(None)
|
||||||
|
progressDialog.show()
|
||||||
|
QApplication.processEvents()
|
||||||
|
|
||||||
for i, sample in enumerate(samples):
|
for i, sample in enumerate(samples):
|
||||||
item = QListWidgetItem(QPixmap(str(sample)), f"{sample.stem[:3]}...", self)
|
item = QListWidgetItem(QPixmap(str(sample)), f"{sample.stem[:3]}...", self)
|
||||||
@ -45,6 +58,7 @@ class SamplesListWidget(QListWidget):
|
|||||||
break
|
break
|
||||||
|
|
||||||
progressDialog.setValue(samplesNum)
|
progressDialog.setValue(samplesNum)
|
||||||
|
if i + 1 != samplesNum:
|
||||||
QMessageBox.information(
|
QMessageBox.information(
|
||||||
self, None, f"Loaded {self.model().rowCount()} samples."
|
self, None, f"Loaded {self.model().rowCount()} samples."
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user