87 lines
2.9 KiB
Python
87 lines
2.9 KiB
Python
import pyqtgraph as pg
|
|
from pyqtgraph import Qt
|
|
from pyqtgraph.Qt import QtCore, QtGui
|
|
from PyQt5.QtWidgets import *
|
|
from PyQt5.QtCore import *
|
|
|
|
from .DataExtractorLyse import DataExtractorManager
|
|
|
|
|
|
class WidgetAnalysePanel(QSplitter):
|
|
def __init__(self, **kwargs):
|
|
|
|
super().__init__(**kwargs)
|
|
|
|
self.setOrientation(Qt.Vertical)
|
|
|
|
# Add title
|
|
self.title = QtGui.QLabel()
|
|
self.title.setAlignment(QtCore.Qt.AlignCenter)
|
|
self.title.setText('<h2>' + 'Analyse and Fitting' + ' <\h2>')
|
|
self.title.setFixedHeight(30)
|
|
self.addWidget(self.title)
|
|
|
|
self.bottom = QSplitter()
|
|
self.addWidget(self.bottom)
|
|
|
|
self.absorption_image = None
|
|
self.absorption_image_plot = None
|
|
self.absorption_image_atom_number = None
|
|
|
|
def update_absorption_imaging_atom_number(self):
|
|
x, y = self.absorption_image_plot.roi.pos()
|
|
x_span, y_span = self.absorption_image_plot.roi.size()
|
|
|
|
x = x + x_span / 2
|
|
y = y + y_span / 2
|
|
|
|
x = int(x)
|
|
y = int(y)
|
|
x_span = int(x_span)
|
|
y_span = int(y_span)
|
|
|
|
self.absorption_image.image_absorption = self.absorption_image_plot.data_image
|
|
|
|
self.absorption_image.select_effective_data((x, y), (x_span, y_span))
|
|
|
|
self.absorption_image.get_atom_number(force_to_run=True)
|
|
|
|
self.absorption_image_atom_number.setText(str(self.absorption_image.atom_number))
|
|
|
|
def add_absorption_imaging(self, absorption_image, widget_fake_color_plot):
|
|
|
|
self.absorption_image = absorption_image
|
|
self.absorption_image_plot = widget_fake_color_plot
|
|
self.absorption_image.image_absorption = self.absorption_image_plot.data_image
|
|
|
|
self.absorption_image_plot.roi.sigRegionChanged.connect(self.update_absorption_imaging_atom_number)
|
|
self.absorption_image_plot.analyse_panel_update = self.update_absorption_imaging_atom_number
|
|
|
|
current_box = QSplitter()
|
|
current_box.setOrientation(Qt.Vertical)
|
|
|
|
title = QLabel('Absorption Imaging')
|
|
title.setAlignment(Qt.AlignCenter)
|
|
title.setFixedHeight(30)
|
|
current_box.addWidget(title)
|
|
|
|
atom_number_box = QSplitter()
|
|
atom_number_box.setOrientation(Qt.Horizontal)
|
|
atom_number_title = QLabel(' Atom Number: ')
|
|
atom_number_title.setAlignment(Qt.AlignCenter)
|
|
self.absorption_image_atom_number = QLineEdit()
|
|
self.absorption_image_atom_number.setText(str(absorption_image.atom_number))
|
|
self.absorption_image_atom_number.setReadOnly(True)
|
|
atom_number_title.setFixedHeight(30)
|
|
self.absorption_image_atom_number.setFixedHeight(30)
|
|
atom_number_box.addWidget(atom_number_title)
|
|
atom_number_box.addWidget(self.absorption_image_atom_number)
|
|
current_box.addWidget(atom_number_box)
|
|
|
|
next_box = QSplitter()
|
|
next_box.addWidget(current_box)
|
|
self.bottom.addWidget(next_box)
|
|
self.bottom = next_box
|
|
|
|
|