diff --git a/src/py4D_browser/empad2_reader.py b/src/py4D_browser/empad2_reader.py index 5aba496..3fedfe8 100644 --- a/src/py4D_browser/empad2_reader.py +++ b/src/py4D_browser/empad2_reader.py @@ -5,6 +5,7 @@ def set_empad2_sensor(self, sensor_name): self.empad2_calibrations = empad2.load_calibration_data(sensor=sensor_name) + self.statusBar().showMessage(f"{sensor_name} calibrations loaded", 5_000) def load_empad2_background(self): @@ -13,6 +14,7 @@ def load_empad2_background(self): self.empad2_background = empad2.load_background( filepath=filename, calibration_data=self.empad2_calibrations ) + self.statusBar().showMessage("Background data loaded", 5_000) else: QMessageBox.warning( self, "No calibrations loaded!", "Please select a sensor first" diff --git a/src/py4D_browser/main_window.py b/src/py4D_browser/main_window.py index bcfd3b3..b1bc44e 100644 --- a/src/py4D_browser/main_window.py +++ b/src/py4D_browser/main_window.py @@ -8,6 +8,7 @@ QHBoxLayout, QSplitter, QActionGroup, + QLabel, ) import pyqtgraph as pg @@ -17,7 +18,7 @@ from pathlib import Path import importlib -from py4D_browser.utils import pg_point_roi +from py4D_browser.utils import pg_point_roi, VLine from py4D_browser.scalebar import ScaleBar @@ -82,7 +83,7 @@ def __init__(self, argv): self.setup_menus() self.setup_views() - self.resize(800, 400) + self.resize(1000, 800) self.show() @@ -378,10 +379,7 @@ def setup_views(self): # Set up the diffraction space window. self.diffraction_space_widget = pg.ImageView() self.diffraction_space_widget.setImage(np.zeros((512, 512))) - self.diffraction_space_view_text = pg.TextItem( - "Slice", (200, 200, 200), None, (0, 1) - ) - self.diffraction_space_widget.addItem(self.diffraction_space_view_text) + self.diffraction_space_view_text = QLabel("Slice") # Create virtual detector ROI selector self.virtual_detector_point = pg_point_roi( @@ -404,10 +402,7 @@ def setup_views(self): # Set up the real space window. self.real_space_widget = pg.ImageView() self.real_space_widget.setImage(np.zeros((512, 512))) - self.real_space_view_text = pg.TextItem( - "Scan pos.", (200, 200, 200), None, (0, 1) - ) - self.real_space_widget.addItem(self.real_space_view_text) + self.real_space_view_text = QLabel("Scan Position") # Add point selector connected to displayed diffraction pattern self.real_space_point_selector = pg_point_roi(self.real_space_widget.getView()) @@ -467,6 +462,11 @@ def setup_views(self): self.real_space_widget.getView().setMenuEnabled(False) self.fft_widget.getView().setMenuEnabled(False) + self.statusBar().addPermanentWidget(VLine()) + self.statusBar().addPermanentWidget(self.diffraction_space_view_text) + self.statusBar().addPermanentWidget(VLine()) + self.statusBar().addPermanentWidget(self.real_space_view_text) + # Handle dragging and dropping a file on the window def dragEnterEvent(self, event): if event.mimeData().hasUrls(): diff --git a/src/py4D_browser/update_views.py b/src/py4D_browser/update_views.py index 658a640..770062c 100644 --- a/src/py4D_browser/update_views.py +++ b/src/py4D_browser/update_views.py @@ -50,7 +50,7 @@ def update_real_space_view(self, reset=False): # update the label: self.diffraction_space_view_text.setText( - f"[{slice_x.start}:{slice_x.stop},{slice_y.start}:{slice_y.stop}]" + f"Diffraction Space Range: [{slice_x.start}:{slice_x.stop},{slice_y.start}:{slice_y.stop}]" ) if detector_mode == "Integrating": @@ -67,7 +67,9 @@ def update_real_space_view(self, reset=False): x0 = self.virtual_detector_roi.pos()[0] + R y0 = self.virtual_detector_roi.pos()[1] + R - self.diffraction_space_view_text.setText(f"[({x0:.0f},{y0:.0f}),{R:.0f}]") + self.diffraction_space_view_text.setText( + f"Detector Center: ({x0:.0f},{y0:.0f}), Radius: {R:.0f}" + ) mask = make_detector( (self.datacube.Q_Nx, self.datacube.Q_Ny), "circle", ((x0, y0), R) @@ -86,7 +88,7 @@ def update_real_space_view(self, reset=False): R_inner -= 1 self.diffraction_space_view_text.setText( - f"[({x0:.0f},{y0:.0f}),({R_inner:.0f},{R_outer:.0f})]" + f"Detector Center: ({x0:.0f},{y0:.0f}), Radii: ({R_inner:.0f},{R_outer:.0f})" ) mask = make_detector( @@ -105,7 +107,7 @@ def update_real_space_view(self, reset=False): yc = np.clip(yc, 0, self.datacube.Q_Ny - 1) vimg = self.datacube.data[:, :, xc, yc] - self.diffraction_space_view_text.setText(f"[{xc},{yc}]") + self.diffraction_space_view_text.setText(f"Diffraction Pixel: [{xc},{yc}]") else: raise ValueError("Detector shape not recognized") @@ -206,7 +208,7 @@ def update_diffraction_space_view(self, reset=False): xc = np.clip(xc, 0, self.datacube.R_Nx - 1) yc = np.clip(yc, 0, self.datacube.R_Ny - 1) - self.real_space_view_text.setText(f"[{xc},{yc}]") + self.real_space_view_text.setText(f"Real Space Pixel: [{xc},{yc}]") DP = self.datacube.data[xc, yc] elif detector_shape == "Rectangular": @@ -218,7 +220,7 @@ def update_diffraction_space_view(self, reset=False): # update the label: self.real_space_view_text.setText( - f"[{slice_x.start}:{slice_x.stop},{slice_y.start}:{slice_y.stop}]" + f"Real Space Range: [{slice_x.start}:{slice_x.stop},{slice_y.start}:{slice_y.stop}]" ) DP = np.sum(self.datacube.data[slice_x, slice_y], axis=(0, 1)) diff --git a/src/py4D_browser/utils.py b/src/py4D_browser/utils.py index ed95364..3dee80a 100644 --- a/src/py4D_browser/utils.py +++ b/src/py4D_browser/utils.py @@ -1,5 +1,13 @@ import pyqtgraph as pg import numpy as np +from PyQt5.QtWidgets import QFrame + + +class VLine(QFrame): + # a simple vertical divider line + def __init__(self): + super(VLine, self).__init__() + self.setFrameShape(self.VLine | self.Sunken) def pg_point_roi(view_box):