示例#1
0
    def __init__(self, parent=None):
        super(CLEEDConsoleWidget, self).__init__(parent)
        layout = QtGui.QVBoxLayout(self)
        edit_layout = QtGui.QVBoxLayout()
        button_layout = QtGui.QHBoxLayout()
        
        self.ipyConsole = QIPythonWidget(customBanner=
            "*** Welcome to the CLEED embedded IPython console ***\n\n")
        
        self.tabWidget = QtGui.QTabWidget()
        layout.addWidget(self.tabWidget)

        from highlighter import PythonHighlighter
        
        self.save_button = QtGui.QPushButton('Save')
        self.load_button = QtGui.QPushButton('Load')
        self.run_button = QtGui.QPushButton('Run...')
        button_layout.addWidget(self.load_button)
        button_layout.addWidget(self.save_button)
        button_layout.addWidget(self.run_button)
        
        self.scriptEdit = QtGui.QPlainTextEdit()
        self.highlighter = PythonHighlighter(self.scriptEdit.document())
        edit_layout.addWidget(self.scriptEdit)
        edit_layout.addLayout(button_layout)
        
        edit_widget = QtGui.QWidget()
        edit_widget.setLayout(edit_layout)
        
        self.tabWidget.addTab(self.ipyConsole, 'Console')
        self.tabWidget.addTab(edit_widget, 'Editor')
        
        self.ipyConsole.pushVariables(
            {"app": self.parent(),
             "console": self.ipyConsole
             })
        self.ipyConsole.printText("The application handle variable 'app' " 
                                  "is available. "
                                  "Use the 'whos' command for information on " 
                                  "available variables.")
        self.setToolTip("CLEED scripting console. \n\n"
                        "Note: type 'whos' for list of variables "
                        "or help($var) for help")
示例#2
0
    def __init__(self, parent=None, title={'text': ''}):
        QtGui.QWidget.__init__(self, parent)
        self.canvas = MplCanvas()
        self.canvas.fig.set_facecolor('white')
        self.vbl = QtGui.QVBoxLayout()
        self.vbl.addWidget(self.canvas)
        self.setLayout(self.vbl)
        self._init_context_menu()
        self.canvas.setFocusPolicy(QtCore.Qt.ClickFocus)
        self.canvas.setFocus()
        self._plots = []
        self._active_obj = None
        self._active_dataset = None
        self._old_bbox = None

        # initialise selection box
        self._selection_box = mpl.patches.Rectangle((0, 0), 1, 1)
        for attr in self.HIGHLIGHTER:
            try:
                eval("self._selection_box.set_{0}(self.HIGHLIGHTER['{0}'])"
                     "".format(attr))
            except:
                pass
        self._selection_box.set_visible(False)
        self.canvas.ax.add_patch(self._selection_box)

        # initialise title
        try:
            title_text = title.pop('text')
        except KeyError:
            title_text = ''
        try:
            title_bbox = title.pop('boxstyle')
        except:
            title_bbox = dict(alpha=0., fc='gray', boxstyle='square,pad=0.1')

        self.title(title_text, bbox=title_bbox, **title)

        # initialise connections
        self.canvas.mpl_connect('button_press_event', self.mousePressEvent)
        self.canvas.mpl_connect('button_release_event', self.mouseReleaseEvent)
        self.canvas.mpl_connect('motion_notify_event', self.mouseMoveEvent)
        self.canvas.mpl_connect('pick_event', self._on_pick)
        self.canvas.mpl_connect('key_press_event', self.keyPressEvent)
        self.canvas.mpl_connect('key_release_event', self.keyReleaseEvent)
示例#3
0
    def __init__(self, parent=None):
        super(SmoothDialog, self).__init__(parent)

        self.setWindowTitle('Smooth IV')
        self.setWindowIcon(QtGui.QIcon(':/graph_smooth.svg'))

        layout = QtGui.QVBoxLayout(self)

        # combo box for multiple plots
        layout.addWidget(QtGui.QLabel('Data set:'))
        self.combo = QtGui.QComboBox()
        layout.addWidget(self.combo)
        for item in self.parent().legend_labels:
            self.combo.addItem(item)

        # OK and Cancel buttons
        buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok | 
                                         QtGui.QDialogButtonBox.Cancel,
                                         QtCore.Qt.Horizontal, self)
        buttons.accepted.connect(self.accept)
        buttons.rejected.connect(self.reject)
        layout.addWidget(buttons)
示例#4
0
    def __init__(self, parent=None, text=None):
        super(MplLabelDialog, self).__init__(parent)
        
        self.setWindowTitle('Edit text')
        self.setWindowIcon(QtGui.QIcon(':/font_32x32.png'))
        
        layout = QtGui.QVBoxLayout(self)
        
        #self.tab_widget = QtGui.QTabWidget()
        #self.tab_widget.addTab(self, 'test')
        #
        self.font_label = QtGui.QLabel('Font Family:')
        self.size_label = QtGui.QLabel('Size:')
        self.text_label = QtGui.QLabel('Label:')
        self.color_label = QtGui.QLabel('Color:')
        self.alpha_label = QtGui.QLabel('Alpha:')
        self.fill_color_label = QtGui.QLabel("Background color:")
        self.fill_alpha_label = QtGui.QLabel("Background alpha:")
        
        self.font_combo = QtGui.QComboBox()
        self.color_combo = QtGui.QComboBox()
        self.text_edit = QtGui.QLineEdit()
        self.size_spin_box = QtGui.QSpinBox()
        self.alpha_spin_box = QtGui.QDoubleSpinBox()
        self.fill_alpha_spin_box = QtGui.QDoubleSpinBox()
        
        try:
            from matplotlib.backends.qt4_editor.formlayout import ColorButton
            self.color_button = ColorButton()
            self.color_button.colorChanged.connect(lambda x:
                self.callback(self.text.set_color(self.color_button.color)))
        except:
            pass
        
        self.bold_check = QtGui.QPushButton('B')
        self.italics_check = QtGui.QPushButton('I')
        self.underline_check = QtGui.QPushButton('U')
        self.underline_check.setVisible(False)  # not yet implemented
        
        font = QtGui.QFont()
        font.setWeight(600)
        self.bold_check.setFont(font)
        self.bold_check.setCheckable(True)
        self.bold_check.setMinimumWidth(25)
        self.bold_check.setSizePolicy(QtGui.QSizePolicy.Minimum, 
                                      QtGui.QSizePolicy.Preferred)
        
        font = QtGui.QFont()
        font.setItalic(True)
        self.italics_check.setFont(font)
        self.italics_check.setCheckable(True)
        self.italics_check.setMinimumWidth(25)
        self.italics_check.setSizePolicy(QtGui.QSizePolicy.Minimum, 
                                         QtGui.QSizePolicy.Preferred)
        
        
        font = QtGui.QFont()
        font.setUnderline(True)
        self.underline_check.setFont(font)
        self.underline_check.setCheckable(True)
        self.underline_check.setMinimumWidth(25)
        self.underline_check.setSizePolicy(QtGui.QSizePolicy.Minimum, 
                                           QtGui.QSizePolicy.Preferred)
        
        self.alpha_spin_box.setMinimum(0.)
        self.alpha_spin_box.setMaximum(1.)
        self.alpha_spin_box.setSingleStep(0.1)
        
        self.fill_alpha_spin_box.setMinimum(0.)
        self.fill_alpha_spin_box.setMaximum(1.)
        self.fill_alpha_spin_box.setSingleStep(0.1)
        
        self.size_spin_box.setMinimum(1)
        self.size_spin_box.setMaximum(200)
        self.size_spin_box.setSingleStep(1)

        self._populate_fonts()
        self._populate_colors()
        
        spacer = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, 
                                   QtGui.QSizePolicy.Minimum)
        layout.addWidget(self.font_label)
        font_layout = QtGui.QHBoxLayout()
        font_layout.addWidget(self.font_combo)
        font_layout.addWidget(self.bold_check)
        font_layout.addWidget(self.italics_check)
        font_layout.addWidget(self.underline_check)
        font_layout.addItem(spacer)
        layout.addLayout(font_layout)
        
        layout.addWidget(self.size_label)
        layout.addWidget(self.size_spin_box)
        
        layout.addWidget(self.color_label)
        color_layout = QtGui.QHBoxLayout()
        color_layout.addWidget(self.color_combo)
        if hasattr(self, 'color_button'):
            color_layout.addWidget(self.color_button)
        layout.addLayout(color_layout)
        
        layout.addWidget(self.alpha_label)
        layout.addWidget(self.alpha_spin_box)
        
        #layout.addWidget(self.fill_alpha_label)
        #layout.addWidget(self.fill_alpha_spin_box)
        
        layout.addWidget(self.text_label)
        layout.addWidget(self.text_edit)    
        
        #self.addLayout(layout)
        
        self.text = text
        
        try:
            import matplotlib as mpl
        
            self.size_spin_box.setValue(text.get_size() or 12)
            self.text_edit.setText(text.get_text() if text.get_text() != '____' else '')
            self.font_combo.setCurrentIndex(self.families.index(text.get_family()[0]))
            self.font_combo.update()
            color = text.get_color()
            try:
                self.font_combo.setCurrentIndex(self.colors[color])
            except KeyError:
                from matplotlib.colors import ColorConverter, rgb2hex, cnames
                code = rgb2hex(ColorConverter.colors[color])
                
                for name in cnames:
                    if cnames[name] == code:
                        color = name
                
                try:        
                    self.font_combo.setCurrentIndex(self.colors[color])
                except KeyError:
                    self.font_combo.setCurrentIndex(self.colors['black'])
            finally:
                pass
            
            try:
                self.bold_check.setChecked((text.get_weight() >= 600))
            except:
                pass
            
            try: 
                self.italics_check.setChecked(text.get_style() == 'italic')
            except:
                pass
            
        except ImportWarning:
            pass
        
        self.text_edit.textChanged.connect(lambda x: self.callback(self._set_text(x)))
        self.color_combo.currentIndexChanged.connect(lambda x: 
            self.callback(self.text.set_color(str(self.color_combo.itemText(x)))))
        self.font_combo.currentIndexChanged.connect(lambda x: 
            self.callback(self.text.set_family(str(self.font_combo.itemText(x)))))
        self.size_spin_box.valueChanged.connect(lambda x: 
                                        self.callback(self.text.set_size(x)))
        self.alpha_spin_box.valueChanged.connect(lambda x:
                                        self.callback(self.text.set_alpha(x)))
        
        self.bold_check.toggled.connect(lambda x:
                self.callback(self.text.set_weight('bold' if x else 'normal')))
        self.italics_check.toggled.connect(lambda x:
                self.callback(self.text.set_style('italic' if x else 'normal')))
        self.underline_check.toggled.connect(lambda x:
                self.callback(self.text.set_text('\\underline{%s}'
                                                 % self.text.get_text() if x 
                                                 else self.text.get_text())))
示例#5
0
    def __init__(self, parent=None):
        super(MplBaseDialog, self).__init__(parent)
    
        layout = QtGui.QVBoxLayout(self)
        
        #self.tab_widget = QtGui.QTabWidget()
        #self.tab_widget.addTab(self, 'test')
        #
        self.font_label = QtGui.QLabel('Font Family:')
        self.size_label = QtGui.QLabel('Size:')
        self.text_label = QtGui.QLabel('Label:')
        self.color_label = QtGui.QLabel('Color:')
        self.alpha_label = QtGui.QLabel('Alpha:')
        self.fill_color_label = QtGui.QLabel("Fill color:")
        self.fill_alpha_label = QtGui.QLabel("Fill alpha:")
        
        self.font_combo = QtGui.QComboBox()
        self.color_combo = QtGui.QComboBox()
        self.text_edit = QtGui.QLineEdit()
        self.size_spin_box = QtGui.QSpinBox()
        self.alpha_spin_box = QtGui.QDoubleSpinBox()
        self.fill_alpha_spin_box = QtGui.QDoubleSpinBox()
        
        try:
            from matplotlib.backends.qt4_editor.formlayout import ColorButton
            self.color_button = ColorButton()
            self.fill_color_button = ColorButton()
        except:
            self.color_button = QtGui.QPushButton('')
            self.color_button.setVisible(False)
            self.fill_color_button = QtGui.QPushButton('')
            self.fill_color_button.setVisible(False)
        
        
        self.bold_check = QtGui.QPushButton('B')
        self.italics_check = QtGui.QPushButton('I')
        self.underline_check = QtGui.QPushButton('U')
        self.underline_check.setVisible(False)  # not yet implemented
        
        font = QtGui.QFont()
        font.setWeight(600)
        self.bold_check.setFont(font)
        self.bold_check.setCheckable(True)
        self.bold_check.setMinimumWidth(25)
        self.bold_check.setSizePolicy(QtGui.QSizePolicy.Minimum, 
                                      QtGui.QSizePolicy.Preferred)
        
        font = QtGui.QFont()
        font.setItalic(True)
        self.italics_check.setFont(font)
        self.italics_check.setCheckable(True)
        self.italics_check.setMinimumWidth(25)
        self.italics_check.setSizePolicy(QtGui.QSizePolicy.Minimum, 
                                         QtGui.QSizePolicy.Preferred)
        
        
        font = QtGui.QFont()
        font.setUnderline(True)
        self.underline_check.setFont(font)
        self.underline_check.setCheckable(True)
        self.underline_check.setMinimumWidth(25)
        self.underline_check.setSizePolicy(QtGui.QSizePolicy.Minimum, 
                                           QtGui.QSizePolicy.Preferred)
        
        self.alpha_spin_box.setMinimum(0.)
        self.alpha_spin_box.setMaximum(1.)
        self.alpha_spin_box.setSingleStep(0.1)
        
        self.fill_alpha_spin_box.setMinimum(0.)
        self.fill_alpha_spin_box.setMaximum(1.)
        self.fill_alpha_spin_box.setSingleStep(0.1)
        
        self.size_spin_box.setMinimum(1)
        self.size_spin_box.setMaximum(200)
        self.size_spin_box.setSingleStep(1)

        self._populate_colors()
        for family in self.families:
            self.font_combo.addItem(family)
        
        spacer = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, 
                                   QtGui.QSizePolicy.Minimum)
        layout.addWidget(self.font_label)
        font_layout = QtGui.QHBoxLayout()
        font_layout.addWidget(self.font_combo)
        font_layout.addWidget(self.bold_check)
        font_layout.addWidget(self.italics_check)
        font_layout.addWidget(self.underline_check)
        font_layout.addItem(spacer)
        layout.addLayout(font_layout)
        
        layout.addWidget(self.size_label)
        layout.addWidget(self.size_spin_box)
        
        layout.addWidget(self.color_label)
        color_layout = QtGui.QHBoxLayout()
        color_layout.addWidget(self.color_combo)
        color_layout.addWidget(self.color_button)
        layout.addLayout(color_layout)
        
        layout.addWidget(self.alpha_label)
        layout.addWidget(self.alpha_spin_box)
        
        #layout.addWidget(self.fill_alpha_label)
        #layout.addWidget(self.fill_alpha_spin_box)
        
        layout.addWidget(self.text_label)
        layout.addWidget(self.text_edit)