GUI: Show grid size for raster scan
This commit is contained in:
@@ -168,6 +168,7 @@ class MainWindow(QMainWindow):
|
||||
self.tell_samples.unmount.connect(self.daq.unmount)
|
||||
|
||||
self.data_collection.raster.grid_size_updated.connect(self.raster.update_grid_size)
|
||||
self.raster.grid_scan_size_changed.connect(self.data_collection.raster.grid_scan_size_change)
|
||||
self.status_bar.set_pgroup.connect(self.daq.set_pgroup)
|
||||
self.status_bar.end_session.connect(self.daq.end_session)
|
||||
self.status_bar.force_session.connect(self.daq.force_session)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from PySide6.QtCore import Signal, Slot
|
||||
from PySide6.QtCore import Signal, Slot, Qt
|
||||
from PySide6.QtWidgets import QWidget, QGridLayout, QLabel, QSizePolicy, QSpacerItem
|
||||
|
||||
from aaregui.widgets.number_line_edit import NumberLineEdit
|
||||
@@ -9,6 +9,11 @@ class RasterDataCollectionPanel(QWidget):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
self.__n_x = 0
|
||||
self.__n_y = 0
|
||||
self.__size_x = 20
|
||||
self.__size_y = 20
|
||||
|
||||
grid_layout = QGridLayout(self)
|
||||
|
||||
grid_layout.addWidget(QLabel("High resolution", parent=self), 0, 0)
|
||||
@@ -28,15 +33,15 @@ class RasterDataCollectionPanel(QWidget):
|
||||
)
|
||||
grid_layout.addWidget(self.transmission_enter, 2, 1,1,3)
|
||||
|
||||
grid_layout.addWidget(QLabel("Grid size", parent=self), 3, 0)
|
||||
grid_layout.addWidget(QLabel("Grid element size", parent=self), 3, 0)
|
||||
|
||||
self.width_enter = NumberLineEdit(5, 100, decimals=0, default=20, parent=self)
|
||||
self.width_enter = NumberLineEdit(5, 100, decimals=0, default=self.__size_x, parent=self)
|
||||
self.width_enter.newValue.connect(self.grid_size)
|
||||
grid_layout.addWidget(self.width_enter, 3, 1)
|
||||
|
||||
grid_layout.addWidget(QLabel(" x ", parent=self), 3, 2)
|
||||
|
||||
self.height_enter = NumberLineEdit(5, 100, decimals=0, default=20, parent=self)
|
||||
self.height_enter = NumberLineEdit(5, 100, decimals=0, default=self.__size_y, parent=self)
|
||||
self.height_enter.newValue.connect(self.grid_size)
|
||||
grid_layout.addWidget(self.height_enter, 3, 3)
|
||||
|
||||
@@ -49,13 +54,52 @@ class RasterDataCollectionPanel(QWidget):
|
||||
grid_layout.addWidget(self.image_time_enter, 4, 1, 1, 3)
|
||||
grid_layout.addWidget(QLabel("s", parent=self), 4, 4)
|
||||
|
||||
grid_layout.addWidget(QLabel("Grid elements", parent=self), 5, 0)
|
||||
|
||||
self.n_x_label = QLabel("-", parent=self)
|
||||
self.n_x_label.setAlignment(Qt.AlignmentFlag.AlignRight)
|
||||
grid_layout.addWidget(self.n_x_label, 5, 1)
|
||||
grid_layout.addWidget(QLabel(" x ", parent=self), 5, 2)
|
||||
|
||||
self.n_y_label = QLabel("-", parent=self)
|
||||
self.n_y_label.setAlignment(Qt.AlignmentFlag.AlignRight)
|
||||
grid_layout.addWidget(self.n_y_label, 5, 3)
|
||||
|
||||
grid_layout.addWidget(QLabel("Grid size", parent=self), 6, 0)
|
||||
|
||||
self.size_x_label = QLabel("-", parent=self)
|
||||
self.size_x_label.setAlignment(Qt.AlignmentFlag.AlignRight)
|
||||
grid_layout.addWidget(self.size_x_label, 6, 1)
|
||||
grid_layout.addWidget(QLabel(" x ", parent=self), 6, 2)
|
||||
|
||||
self.size_y_label = QLabel("-", parent=self)
|
||||
self.size_y_label.setAlignment(Qt.AlignmentFlag.AlignRight)
|
||||
grid_layout.addWidget(self.size_y_label, 6, 3)
|
||||
|
||||
grid_layout.addWidget(QLabel("μm", parent=self), 6, 4)
|
||||
|
||||
horizontal_spacer = QSpacerItem(
|
||||
40, 20, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding
|
||||
)
|
||||
grid_layout.addItem(horizontal_spacer, 5, 0, 1, 4)
|
||||
grid_layout.addItem(horizontal_spacer, 7, 0, 1, 4)
|
||||
self.update_grid_scan_size()
|
||||
|
||||
@Slot(float)
|
||||
def grid_size(self, _: float):
|
||||
width = self.width_enter.value / 1000.0
|
||||
height = self.height_enter.value / 1000.0
|
||||
self.grid_size_updated.emit(width, height)
|
||||
self.__size_x = self.width_enter.value
|
||||
self.__size_y = self.height_enter.value
|
||||
self.grid_size_updated.emit(self.__size_x / 1000.0,
|
||||
self.__size_y / 1000.0)
|
||||
self.update_grid_scan_size()
|
||||
|
||||
@Slot(int, int)
|
||||
def grid_scan_size_change(self, n_x: int, n_y: int):
|
||||
self.__n_x = n_x
|
||||
self.__n_y = n_y
|
||||
self.update_grid_scan_size()
|
||||
|
||||
def update_grid_scan_size(self):
|
||||
self.n_x_label.setText(str(self.__n_x))
|
||||
self.size_x_label.setText(f"{self.__size_x * self.__n_x:.1f}")
|
||||
self.n_y_label.setText(str(self.__n_y))
|
||||
self.size_y_label.setText(f"{self.__size_y * self.__n_y:.1f}")
|
||||
@@ -59,6 +59,7 @@ def normalize_angle(angle_deg: float) -> float:
|
||||
class RasterGridManager(QObject):
|
||||
grid_updated = Signal()
|
||||
grid_scan = Signal(RasterGridRequest)
|
||||
grid_scan_size_changed = Signal(int, int)
|
||||
|
||||
def __init__(self, geom):
|
||||
super().__init__()
|
||||
@@ -120,6 +121,7 @@ class RasterGridManager(QObject):
|
||||
)
|
||||
|
||||
self.__active_grid.omega_deg = self.__geom.omega_deg
|
||||
self.grid_scan_size_changed.emit(self.__active_grid.n_x, self.__active_grid.n_y)
|
||||
|
||||
def move_active_grid(self, delta: QPointF):
|
||||
if not self._is_grid_visible(self.__active_grid):
|
||||
@@ -138,6 +140,7 @@ class RasterGridManager(QObject):
|
||||
def clear_active_grid(self):
|
||||
self.__active_grid.n_x = 0
|
||||
self.__active_grid.n_y = 0
|
||||
self.grid_scan_size_changed.emit(self.__active_grid.n_x, self.__active_grid.n_y)
|
||||
|
||||
def is_part_of_active_grid(self, point: QPointF) -> bool:
|
||||
if not self._is_grid_visible(self.__active_grid):
|
||||
@@ -163,6 +166,8 @@ class RasterGridManager(QObject):
|
||||
|
||||
self.__active_grid.grid_size_mm = Coordinate(x=grid_size_mm_x, y=grid_size_mm_y)
|
||||
|
||||
self.grid_scan_size_changed.emit(self.__active_grid.n_x, self.__active_grid.n_y)
|
||||
|
||||
@Slot()
|
||||
def run_grid_scan(self):
|
||||
self.grid_scan.emit(self.__active_grid)
|
||||
|
||||
Reference in New Issue
Block a user