def setUp(self): super(TestConsole, self).setUp() self.console = IPythonDockWidget( available_vars={"a": _a, "f": _f}, custom_banner="Welcome!\n") self.console.show() self.qWaitForWindowExposed(self.console)
def console(qapp_utils): """Create a console widget""" # Console tests disabled due to corruption of python environment pytest.skip("Disabled (see issue #538)") try: from silx.gui.console import IPythonDockWidget except ImportError: pytest.skip("IPythonDockWidget is not available") console = IPythonDockWidget(available_vars={ "a": _a, "f": _f }, custom_banner="Welcome!\n") console.show() qapp_utils.qWaitForWindowExposed(console) yield console console.setAttribute(qt.Qt.WA_DeleteOnClose) console.close() console = None
def __init__(self, filename=None): # Qt base class constructor super(ScanViewer, self).__init__() # instantiate the form class and set it up in the current QMainWindow self.ui = design.Ui_MainWindow() self.ui.setupUi(self) # possibly set initial values self.guessPath() if filename: self.ui.filenameBox.setText(filename) # set up default plot settings self.diffCmap = { 'name': 'temperature', 'autoscale': True, 'normalization': 'log' } self.mapCmap = { 'name': 'gray', 'autoscale': True, 'normalization': 'linear' } # populate the scan class list self.ui.scanClassBox.addItem('select scan type') default_text = 'contrast_scan' default_index = 0 for subclass in nmutils.core.Scan.__subclasses__(): self.ui.scanClassBox.addItem(subclass.__name__) if subclass.__name__ == default_text: default_index = self.ui.scanClassBox.count() - 1 for subclass_ in subclass.__subclasses__(): self.ui.scanClassBox.addItem(subclass_.__name__) # connect browse button def wrap(): old = self.ui.filenameBox.text() result = qt.QFileDialog.getOpenFileName(directory=old) # PyQt5 gives a tuple here... if type(result) == tuple: result = result[0] if result: self.ui.filenameBox.setText(result) self.ui.browseButton.clicked.connect(wrap) # populate the options tab self.ui.scanClassBox.currentIndexChanged.connect(self.populateOptions) # set the default and emit a signal self.ui.scanClassBox.setCurrentIndex(default_index) # connect load button self.ui.loadButton.clicked.connect(self.load) # connect the PyMCA button to the slot on that widget self.ui.pymcaButton.clicked.connect(self.ui.xrfWidget.exportPyMCA) # dummy scan self._scan = None # the ipython button self.ui.ipythonButton.setCheckable(True) self.ui.ipythonButton.setChecked(False) self.ui.ipythonButton.clicked.connect(self._toggle_ipython) if HAS_QTCONSOLE: self.console = IPythonDockWidget( parent=self, available_vars={ 'self': self, 'ui': self.ui, 'update': self._update }, custom_banner= ('Nanomax Scan Viewer console.\n' + '"self" refers to the ScanViewer instance.\n' + '"self.scan" refers to the current Scan object.\n' + '"update()" refreshes all plots and images after modifying data.' + '\n\n')) self.console.hide() self.addDockWidget(qt.Qt.BottomDockWidgetArea, self.console) else: self.ui.ipythonButton.setEnabled(False)