started preview and added pyproject toml

This commit is contained in:
2025-01-21 17:41:12 +01:00
parent e039d74d1a
commit 7b4c2f35eb
7 changed files with 201 additions and 14 deletions

View File

View File

@@ -0,0 +1,83 @@
import logging
import pickle
import pandas as pd
from PySide6.QtWidgets import QDialog, QVBoxLayout, QHBoxLayout, QPushButton, QFileDialog, QProgressBar
from PySide6.QtCore import QThreadPool
from fixtracks.widgets.mergepreview import MergePreview
from fixtracks.utils.reader import PickleLoader
class PreviewDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self._threadpool = QThreadPool(self)
self._df = None
self._reader = None
self.setWindowTitle("Merge Preview")
self._progress_bar = QProgressBar(self)
# self._progress_bar.setRange(0, 0) # Set the progress bar to be indeterminate
self._progress_bar.setValue(0)
self.merge_preview = MergePreview(parent=self)
self._opendataBtn = QPushButton("open data")
self._opendataBtn.clicked.connect(self.on_openData)
self._openleftBtn = QPushButton("open left video")
self._openleftBtn.clicked.connect(self.on_openleftVideo)
self._openrightBtn = QPushButton("open right video")
self._openrightBtn.clicked.connect(self.on_openrightVideo)
btn_box = QHBoxLayout()
btn_box.addWidget(self._opendataBtn)
btn_box.addWidget(self._openleftBtn)
btn_box.addWidget(self._openrightBtn)
layout = QVBoxLayout()
layout.addLayout(btn_box)
layout.addWidget(self.merge_preview)
layout.addWidget(self._progress_bar)
self.setLayout(layout)
def on_openData(self):
file_dialog = QFileDialog(self, "Select pickled DataFrame", "", "Pandas DataFrame (*.pkl)")
infile = None
if file_dialog.exec():
infile = file_dialog.selectedFiles()[0]
if infile is not None:
self._progress_bar.setRange(0,0)
self._reader = PickleLoader(infile)
self._reader.signals.finished.connect(self._on_dataOpenend)
self._threadpool.start(self._reader)
def _on_dataOpenend(self, state):
self._progress_bar.setRange(0, 100)
self._progress_bar.setValue(0)
if state and self._reader is not None:
self._df = self._reader.data
self.merge_preview.set_dataframe(self._df)
self._reader = None
def on_openleftVideo(self):
pass
def on_openrightVideo(self):
pass
def main():
from PySide6.QtWidgets import QApplication
import sys
app = QApplication(sys.argv)
dialog = PreviewDialog()
dialog.show()
sys.exit(app.exec())
if __name__ == "__main__":
logging.basicConfig(level=logging.INFO, force=True)
main()