Skip to content

Commit

Permalink
switch text annotations to status bar
Browse files Browse the repository at this point in the history
  • Loading branch information
sezelt committed Feb 2, 2024
1 parent 0abe61e commit ae9c08c
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 16 deletions.
2 changes: 2 additions & 0 deletions src/py4D_browser/empad2_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand All @@ -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"
Expand Down
20 changes: 10 additions & 10 deletions src/py4D_browser/main_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
QHBoxLayout,
QSplitter,
QActionGroup,
QLabel,
)

import pyqtgraph as pg
Expand All @@ -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


Expand Down Expand Up @@ -82,7 +83,7 @@ def __init__(self, argv):
self.setup_menus()
self.setup_views()

self.resize(800, 400)
self.resize(1000, 800)

self.show()

Expand Down Expand Up @@ -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(
Expand All @@ -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())
Expand Down Expand Up @@ -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():
Expand Down
14 changes: 8 additions & 6 deletions src/py4D_browser/update_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -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":
Expand All @@ -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)
Expand All @@ -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(
Expand All @@ -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")
Expand Down Expand Up @@ -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":
Expand All @@ -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))
Expand Down
8 changes: 8 additions & 0 deletions src/py4D_browser/utils.py
Original file line number Diff line number Diff line change
@@ -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):
Expand Down

0 comments on commit ae9c08c

Please sign in to comment.