GUI: Run/cancel buttons are specific to raster tab

This commit is contained in:
2025-06-12 21:37:34 +02:00
parent bebb9c38d3
commit 3225c63da0
3 changed files with 27 additions and 17 deletions
+2 -2
View File
@@ -119,7 +119,7 @@ class MainWindow(QMainWindow):
self.daq.spreadsheet.connect(self.tell_samples.new_sample_list)
self.daq.update.connect(self.beamline.omega_panel.update_daq_status)
self.daq.update.connect(self.beamline.smargon_panel.update_daq_status)
self.daq.update.connect(self.data_collection.helical.update_daq_status)
self.daq.update.connect(self.data_collection.update_daq_status)
self.daq.update.connect(self.beamline.illumination_panel.update_daq_status)
self.daq.update.connect(self.status_panel.update_daq_status)
self.daq.update.connect(self.camera_image.update_daq_status)
@@ -173,7 +173,7 @@ class MainWindow(QMainWindow):
self.camera_image.set_helical_end.connect(self.data_collection.helical.set_end_point)
self.camera_image.evaluate_grid.connect(self.raster.run_grid_scan)
self.data_collection.evaluate_grid.connect(self.raster.run_grid_scan)
self.data_collection.raster.evaluate_grid.connect(self.raster.run_grid_scan)
self.camera_image.clear_grid.connect(self.raster.clear_active_grid)
self.daq.run_number_incremented.connect(self.data_collection.file_path_panel.increment_run_number)
@@ -1,4 +1,4 @@
from PySide6.QtCore import Signal
from PySide6.QtCore import Signal, Slot
from PySide6.QtWidgets import (
QFrame,
QVBoxLayout,
@@ -9,6 +9,7 @@ from PySide6.QtWidgets import (
)
from aaredaqlib.diffraction_geometry import DiffractionGeometry
from aaredaqlib.models import DAQStatusModel
from aaredaqlib.rotation_scan import RotationScanRequest
from aaredaqlib.sample_geometry import SampleGeometryModel
@@ -23,7 +24,6 @@ from aaregui.widgets.title_label import TitleLabel
class DataCollectionSettings(QFrame):
standard_data_collection = Signal(RotationScanRequest)
evaluate_grid = Signal()
def __init__(self,
s: SampleGeometryModel,
@@ -64,21 +64,10 @@ class DataCollectionSettings(QFrame):
v_layout.addStretch()
self.grid_layout.addWidget(widget, 1, 0, 1, 2)
self.start_button = QPushButton("Start")
self.start_button.setStyleSheet("color: rgb(78, 154, 6);")
self.grid_layout.addWidget(self.start_button, 3, 0)
self.start_button.clicked.connect(self.run_data_collection)
self.abort_button = QPushButton("Abort")
self.abort_button.setStyleSheet("color: rgb(164, 0, 0);")
self.grid_layout.addWidget(self.abort_button, 3, 1)
def run_data_collection(self):
current_tab = self.tab_widget.currentWidget()
if current_tab == self.raster:
self.evaluate_grid.emit()
elif current_tab == self.screening:
if current_tab == self.screening:
data = self.screening.screening_type.itemData(
self.screening.screening_type.currentIndex()
)
@@ -118,3 +107,8 @@ class DataCollectionSettings(QFrame):
self.standard_data_collection.emit(r)
else:
print("No matching tab found.")
@Slot(DAQStatusModel)
def update_daq_status(self, s: DAQStatusModel):
self.raster.update_daq_status(s)
self.helical.update_daq_status(s)
@@ -1,5 +1,5 @@
from PySide6.QtCore import Signal, Slot, Qt
from PySide6.QtWidgets import QWidget, QGridLayout, QLabel, QSizePolicy, QSpacerItem
from PySide6.QtWidgets import QWidget, QGridLayout, QLabel, QSizePolicy, QSpacerItem, QPushButton, QHBoxLayout
from aaredaqlib.diffraction_geometry import DiffractionGeometry
from aaregui.panels.scan_settings_panel import ScanSettingsPanel
@@ -10,6 +10,7 @@ from aaregui.widgets.number_line_edit import NumberLineEdit
class RasterDataCollectionPanel(ScanSettingsPanel):
grid_size_updated = Signal(float, float)
exp_time_updated = Signal(float)
evaluate_grid = Signal()
def __init__(self, raster_mgr :RasterGridManager,
diffraction: DiffractionGeometry,
@@ -75,6 +76,21 @@ class RasterDataCollectionPanel(ScanSettingsPanel):
40, 20, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding
)
self._layout.addItem(horizontal_spacer, 7, 0, 1, 4)
button_layout = QHBoxLayout()
self.start_button = QPushButton("Start")
self.start_button.setStyleSheet("color: rgb(78, 154, 6);")
button_layout.addWidget(self.start_button)
self.start_button.clicked.connect(self.evaluate_grid)
self.abort_button = QPushButton("Abort")
self.abort_button.setStyleSheet("color: rgb(164, 0, 0);")
button_layout.addWidget(self.abort_button)
# Add the button layout to the main layout
self._layout.addLayout(button_layout, 8, 0, 1, 5)
self.update_grid_scan_size()
@Slot(float)