def __init__(self, symbol): self.symbol = symbol self.Z = Xrf.atomic_number(self.symbol) self.show = False k_lines = { 'Ka': False, 'Ka1': True, 'Ka2': True, 'Kb': False, 'Kb1': True, 'Kb2': True } l_lines = { 'La1': False, 'Lb1': False, 'Lb2': False, 'Lg1': False, 'Lg2': False, 'Lg3': False, 'Lg4': False, 'Ll': False } g_lines = {'G1': True, 'G2': True, 'G3': True} self.toggles = { 'Ka': ['Ka1', 'Ka2'], 'Kb': ['Kb1', 'Kb2'], 'Ka1': ['Ka'], 'Kb1': ['Kb'], 'Ka2': ['Ka'], 'Kb2': ['Kb'] } # dict = {key: [e, selected]} self.k_selection = dict() for k in k_lines: e = Xrf.lookup_xrf_line(self.symbol + ' ' + k) #if (e != 0.): self.k_selection.update({k: [e, k_lines[k]]}) self.l_selection = dict() for l in l_lines: e = Xrf.lookup_xrf_line(self.symbol + ' ' + l) #if (e != 0.): show = False self.l_selection.update({l: [e, l_lines[l] or show]}) self.g_selection = dict() for g in g_lines: e = Xrf.lookup_xrf_line(self.symbol + ' ' + g) #if (e != 0.): self.g_selection.update({g: [e, g_lines[g]]}) self.all_lines = dict() self.all_lines.update(self.k_selection) self.all_lines.update(self.l_selection) self.all_lines.update(self.g_selection)
def __init__(self, plotWidget, plotContoller, roiController, mca): super().__init__() self.set_mca(mca) # in future change to get cal. from plot model self.x_scale = 'E' self.pattern_widget = plotWidget self.roi_controller = roiController self.plotController = plotContoller self.log_scale = self.plotController.logMode self._layout = QtWidgets.QVBoxLayout() self.setWindowTitle('XRF control') self.button_widget = QtWidgets.QWidget(self) self.button_widget.setObjectName('xrfs_control_button_widget') self._button_layout = QtWidgets.QHBoxLayout() self._button_layout.setContentsMargins(0, 0, 0, 0) self._button_layout.setSpacing(6) self.add_btn = QtWidgets.QPushButton('Add ROIs') self.add_btn.clicked.connect(self.rois_btn_click_callback) self.clear_btn = QtWidgets.QPushButton('Clear') self.clear_btn.clicked.connect(self.clear_xrf) self._button_layout.addWidget(QtWidgets.QLabel('Search:'),0) self.search_item = s = QtWidgets.QLineEdit('') s.textChanged.connect(lambda:self.search_by_symbol(s.text())) self._button_layout.addWidget(self.search_item, 0) self._button_layout.addSpacerItem(HorizontalSpacerItem()) self._button_layout.addWidget(self.add_btn,0) self._button_layout.addWidget(self.clear_btn,0) self.button_widget.setLayout(self._button_layout) self._layout.addWidget(self.button_widget) self._body_layout = QtWidgets.QHBoxLayout() self.header = ['Z', 'Symbol'] self.cols = len(self.header) self.xrf_tw = ListTableWidget(columns=self.cols) self._body_layout.addWidget(self.xrf_tw) self.k_lines_tags = ['Ka','Ka1', 'Ka2','Kb', 'Kb1', 'Kb2'] self.l_lines_tags = ['La1', 'Lb1', 'Lb2', 'Lg1', 'Lg2', 'Lg3', 'Lg4', 'Ll'] self.g_lines_tags = ['G1','G2', 'G3'] self.parameter_widget = QtWidgets.QWidget() self._parameter_layout = QtWidgets.QGridLayout() self.k_cbs = dict() for k in self.k_lines_tags: k_line = QtWidgets.QCheckBox(k) k_line.setEnabled(False) k_line.toggled.connect(partial(self.cbs_changed, k_line)) self._parameter_layout.addWidget(k_line, 0, self.k_lines_tags.index(k)+2) self.k_cbs[k]=k_line self.l_cbs = dict() for l in self.l_lines_tags: l_line = QtWidgets.QCheckBox(l) l_line.setEnabled(False) l_line.toggled.connect(partial(self.cbs_changed, l_line)) self._parameter_layout.addWidget(l_line,1, self.l_lines_tags.index(l)+2) self.l_cbs[l]=l_line self.g_cbs = dict() for g in self.g_lines_tags: g_line = QtWidgets.QCheckBox(g) g_line.setEnabled(False) g_line.toggled.connect(partial(self.cbs_changed, g_line)) self._parameter_layout.addWidget(g_line,2, self.g_lines_tags.index(g)+2) self.g_cbs[g]=g_line self.parameter_widget.setLayout(self._parameter_layout) self._body_layout.addWidget(self.parameter_widget, 0) self._layout.addLayout(self._body_layout) self.setLayout(self._layout) self.style_widgets() self.xrf_show_cbs = [] self.name_items = [] self.index_items = [] self.kl_cbs = dict() self.kl_cbs.update(self.k_cbs) self.kl_cbs.update(self.l_cbs) self.kl_cbs.update(self.g_cbs) self.xrf = [] self.atoms = dict() #self.show_parameter_in_pattern = True header_view = QtWidgets.QHeaderView(QtCore.Qt.Horizontal, self.xrf_tw) self.xrf_tw.setHorizontalHeader(header_view) header_view.setResizeMode(0, QtWidgets.QHeaderView.Stretch) header_view.setResizeMode(1, QtWidgets.QHeaderView.Stretch) self.xrf_tw.setHorizontalHeaderLabels(self.header) #header_view.hide() self.xrf_tw.setItemDelegate(NoRectDelegate()) #self.xrf_tw.itemChanged.connect(self.xrf_name_item_changed) for atom in Xrf.atomic_symbols: self.add_xrf_row(Xrf.atomic_number(atom),atom) #self.xrf_tw.selectRow(Xrf.atomic_symbols.index(None)) color = self.add_xrf_plot() self.xrf_tw.currentCellChanged.connect(self.selection_changed) #self.xrf_tw.setColumnWidth(0, 35) self.plotController.unitUpdated.connect(self.update_x_scale) self.plotController.dataPlotUpdated.connect(self.update_all_xrf_lines)