def define_browser_menu(self, item): experiment = self.manager.experiments.with_browser_item(item) menu = QtGui.QMenu(self) # Change Color action_change_color = QtGui.QAction(menu) action_change_color.setText("Change Color") action_change_color.triggered.connect( lambda: self.change_color(experiment)) menu.addAction(action_change_color) # Remove action_remove = QtGui.QAction(menu) action_remove.setText("Remove Graph") if self.manager.is_running(): if self.manager.running_experiment( ) == experiment: # Experiment running action_remove.setEnabled(False) action_remove.triggered.connect( lambda: self.remove_experiment(experiment)) menu.addAction(action_remove) # Use parameters action_use = QtGui.QAction(menu) action_use.setText("Use These Parameters") action_use.triggered.connect(lambda: self.set_parameters(experiment)) menu.addAction(action_use) menu_dict = { "menu": menu, "color": action_change_color, "remove": action_remove, "use": action_use } return menu_dict
def define_browser_menu(self, item): menu_dict = super().define_browser_menu(item) menu = menu_dict['menu'] experiment = self.manager.experiments.with_browser_item(item) action_open_pulse = QtGui.QAction(menu) action_open_pulse.setText("Use Settings in Pulse GUI") if self.manager.is_running(): if self.manager.running_experiment( ) == experiment: # Experiment running action_open_pulse.setEnabled(False) action_open_pulse.triggered.connect( lambda: self.open_pulse_gui(experiment)) menu.addAction(action_open_pulse) menu_dict['pulse'] = action_open_pulse action_open_fit = QtGui.QAction(menu) action_open_fit.setText("Use Settings in Fit GUI") if self.manager.is_running(): if self.manager.running_experiment( ) == experiment: # Experiment running action_open_fit.setEnabled(False) action_open_fit.triggered.connect( lambda: self.open_fit_gui(experiment)) menu.addAction(action_open_fit) menu_dict['fit'] = action_open_fit return menu_dict
def _setup_ui(self): main_menu = self.menuBar() file_menu = main_menu.addMenu('Options') load_configuration = QtGui.QAction("Load Configuration", self) load_configuration.triggered.connect(self.load_config) file_menu.addAction(load_configuration) save_as_default = QtGui.QAction("Save Current Settings as Default", self) save_as_default.triggered.connect(self.save_as_default) file_menu.addAction(save_as_default) if self.HAS_DAQ: instrument_control = QtGui.QAction("Instrument Control", self) instrument_control.triggered.connect(self.open_instrument_control) file_menu.addAction(instrument_control) self.log_widget = LogWidget() self.log.addHandler( self.log_widget.handler) # needs to be in Qt context? log.info("ManagedWindow connected to logging") self.queue_button = QtGui.QPushButton('Queue', self) self.queue_button.clicked.connect(self.queue) self.abort_button = QtGui.QPushButton('Abort', self) self.abort_button.setEnabled(False) self.abort_button.clicked.connect(self.abort) self.abort_all_button = QtGui.QPushButton('Abort All', self) self.abort_all_button.setEnabled(False) self.abort_all_button.clicked.connect(self.abort_all) self.plot_widget = [] self.plot = [] for index, plot_widget in enumerate(self.plot_widget_classes): self.plot_widget.append( plot_widget(self.procedure_class.DATA_COLUMNS, x_axes=self.x_axes[index], y_axes=self.y_axes[index], x_label=self.x_labels[index], y_label=self.y_labels[index], legend_text=self.legend_text[index], color_cycle=self.color_cycle)) self.plot.append(self.plot_widget[-1].plot) measured_quantities = [ item for x_axis in self.x_axes for item in x_axis ] measured_quantities.extend( [item for y_axis in self.y_axes for item in y_axis]) quantities = [] for item in measured_quantities: if isinstance(item, (list, tuple)): quantities.extend(item) else: quantities.append(item) self.browser_widget = BrowserWidget(self.procedure_class, self.displays, quantities, parent=self) self.browser_widget.show_button.clicked.connect(self.show_experiments) self.browser_widget.hide_button.clicked.connect(self.hide_experiments) self.browser_widget.clear_button.clicked.connect( self.clear_experiments) self.browser_widget.open_button.clicked.connect(self.open_experiment) self.browser = self.browser_widget.browser self.browser.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.browser.customContextMenuRequested.connect(self.browser_item_menu) self.browser.itemChanged.connect(self.browser_item_changed) self.inputs = InputsWidget(self.procedure_class, self.inputs, parent=self) self.manager = Manager(self.plot, self.browser, log_level=self.log_level, parent=self) self.manager.abort_returned.connect(self.abort_returned) self.manager.queued.connect(self.queued) self.manager.running.connect(self.running) self.manager.finished.connect(self.finished) self.manager.failed.connect(self.failed) self.manager.log.connect(self.log.handle) self.indicators = IndicatorsWidget(self.procedure_class)