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)
Exemplo n.º 2
0
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
Exemplo n.º 3
0
    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)