Source code for dlab.diagnostics.ui.scans.scan_window

from __future__ import annotations

from PyQt5.QtCore import Qt, pyqtSignal
from PyQt5.QtWidgets import QMainWindow, QTabWidget, QWidget

from dlab.utils.log_panel import LogPanel


[docs] class ScanWindow(QMainWindow): """Main window containing various scan tabs.""" closed = pyqtSignal() def __init__( self, log_panel: LogPanel | None = None, parent: QWidget | None = None ) -> None: super().__init__(parent) self.setWindowTitle("Scan") self.setAttribute(Qt.WA_DeleteOnClose) self._log = log_panel self._init_ui() def _init_ui(self) -> None: # Lazy imports to avoid circular imports from dlab.diagnostics.ui.scans.grid_scan_tab import GridScanTab #from dlab.diagnostics.ui.scans.two_color_scan_tab import TwoColorScanTab from dlab.diagnostics.ui.scans.m2_measurement_tab import M2Tab from dlab.diagnostics.ui.scans.grating_compressor_scan_tab import GCScanTab from dlab.diagnostics.ui.scans.temporal_overlap_scan_tab import TOverlapTab self._tabs = QTabWidget() self.setCentralWidget(self._tabs) self._tabs.addTab(GridScanTab(log_panel=self._log), "Grid Scan") #self._tabs.addTab(TwoColorScanTab(log_panel=self._log), "Two-Color Scan") self._tabs.addTab(M2Tab(log_panel=self._log), "M² Scan") self._tabs.addTab(GCScanTab(log_panel=self._log), "Grating Compressor Scan") self._tabs.addTab(TOverlapTab(log_panel=self._log), "Temporal Overlap Scan") # ------------------------------------------------------------------------- # Cleanup # -------------------------------------------------------------------------
[docs] def closeEvent(self, event) -> None: self.closed.emit() super().closeEvent(event)
if __name__ == "__main__": import sys from PyQt5.QtWidgets import QApplication app = QApplication(sys.argv) window = ScanWindow() window.show() sys.exit(app.exec_())