Exemple #1
0
    def __init__(self, axis, source_axis=None, parent=None):
        super(AxisBoundsChooser, self).__init__(parent=parent)
        if source_axis is not None:
            self.axis = source_axis
        else:
            self.axis = axis
        l = QtGui.QVBoxLayout()
        l.addWidget(header_label(axis.id))

        if source_axis is not None:
            minimum, maximum = (float(num)
                                for num in genutil.minmax(source_axis))
            bottom, top = (float(num) for num in genutil.minmax(axis))
            for i, v in enumerate(source_axis):
                if v == bottom:
                    bot_ind = i
                if v == top:
                    top_ind = i
            self.range = RangeWidget(axis_values(source_axis),
                                     bottom=bot_ind,
                                     top=top_ind)
        else:
            minimum, maximum = (float(num) for num in genutil.minmax(axis))
            self.range = RangeWidget(axis_values(axis))

        l.addWidget(self.range)
        self.setLayout(l)

        emitter = partial(self.boundsEdited.emit, self.axis)

        self.range.boundsEdited.connect(emitter)
Exemple #2
0
    def __init__(self, cdmsFile=None, var=None, parent=None):
        super(QAxisList, self).__init__(parent)
        self.axisWidgets = []  # List of QAxis widgets
        self.cdmsFile = cdmsFile  # cdms file associated with the variable
        self._var = None

        # Init & set the layout
        self.vbox = QtGui.QVBoxLayout()
        vbox = QtGui.QVBoxLayout()
        vbox.addWidget(header_label("Dimensions"))
        vbox.addLayout(self.vbox)
        vbox.addStretch()
        vbox.setSpacing(0)
        vbox.setContentsMargins(5, 5, 5, 5)
        self.setLayout(vbox)

        self.latitude = None
        self.longitude = None
        self.roi_vbox = QtGui.QVBoxLayout()
        self.roi_layout = QtGui.QHBoxLayout()
        self.roi_layout.addLayout(self.roi_vbox)

        roi_preview = QtGui.QVBoxLayout()
        self.roi_sample = ROIPreview((200, 200))
        roi_preview.addWidget(self.roi_sample)
        self.roi_layout.addLayout(roi_preview)
        vbox.addLayout(self.roi_layout)
        self.var = var
    def __init__(self, directory, parent=None, f=0, filetypes=None):
        super(DirectoryListWidget, self).__init__(parent=parent, f=f)

        # An instance of QDir
        self.dir = directory

        # Set sorting to name, case insensitive
        self.dir.setSorting(
            QtCore.QDir.SortFlag.Name | QtCore.QDir.SortFlag.IgnoreCase | QtCore.QDir.SortFlag.LocaleAware
        )

        self.list = QtGui.QListWidget()

        self.title = header_label(self.name())

        self.files = []
        self.entries = self.dir.entryInfoList(default_flags)

        for fileinfo in self.entries:
            path = fileinfo.filePath()
            self.files.append(path)
            item = FileInfoItem(fileinfo)
            if filetypes is not None and fileinfo.isFile() and fileinfo.suffix() not in filetypes:
                item.setFlags(0)
            self.list.addItem(item)

        self.list.currentItemChanged.connect(self.currentItemChanged.emit)

        self.layout = QtGui.QVBoxLayout()
        self.layout.addWidget(self.title)
        self.layout.addWidget(self.list)
        self.setLayout(self.layout)
Exemple #4
0
    def __init__(self, axis, source_axis=None, parent=None):
        super(AxisBoundsChooser, self).__init__(parent=parent)
        if source_axis is not None:
            self.axis = source_axis
        else:
            self.axis = axis
        l = QtGui.QVBoxLayout()
        l.addWidget(header_label(axis.id))

        if source_axis is not None:
            minimum, maximum = (float(num) for num in genutil.minmax(source_axis))
            bottom, top = (float(num) for num in genutil.minmax(axis))
            for i, v in enumerate(source_axis):
                if v == bottom:
                    bot_ind = i
                if v == top:
                    top_ind = i
            self.range = RangeWidget(axis_values(source_axis), bottom=bot_ind, top=top_ind)
        else:
            minimum, maximum = (float(num) for num in genutil.minmax(axis))
            self.range = RangeWidget(axis_values(axis))

        l.addWidget(self.range)
        self.setLayout(l)

        emitter = partial(self.boundsEdited.emit, self.axis)

        self.range.boundsEdited.connect(emitter)
Exemple #5
0
    def __init__(self, directory, parent=None, f=0, filetypes=None):
        super(DirectoryListWidget, self).__init__(parent=parent, f=f)

        # An instance of QDir
        self.dir = directory

        # Set sorting to name, case insensitive
        self.dir.setSorting(QtCore.QDir.SortFlag.Name
                            | QtCore.QDir.SortFlag.IgnoreCase
                            | QtCore.QDir.SortFlag.LocaleAware)

        self.list = QtGui.QListWidget()

        self.title = header_label(self.name())

        self.files = []
        self.entries = self.dir.entryInfoList(default_flags)

        for fileinfo in self.entries:
            path = fileinfo.filePath()
            self.files.append(path)
            item = FileInfoItem(fileinfo)
            if filetypes is not None and fileinfo.isFile() and fileinfo.suffix(
            ) not in filetypes:
                item.setFlags(0)
            self.list.addItem(item)

        self.list.currentItemChanged.connect(self.currentItemChanged.emit)

        self.layout = QtGui.QVBoxLayout()
        self.layout.addWidget(self.title)
        self.layout.addWidget(self.list)
        self.setLayout(self.layout)
Exemple #6
0
    def __init__(self, canvas, row, col, parent=None, f=0):
        super(PlotInfo, self).__init__(parent=parent, f=f)

        if callable(canvas):
            self._canvasfunc = canvas
        else:
            self._canvas = canvas

        self.manager = PlotManager(self)
        self.manager.row = row
        self.manager.col = col
        self.manager.removed.connect(self.removeSelf)
        # Icon to display till we actually get some data
        self.newIcon = QtGui.QLabel(self)
        self.newIcon.setPixmap(icon("add_plot.svg").pixmap(128, 128))

        layout = QtGui.QVBoxLayout()
        # Cache for later
        self.dataLayout = layout

        # Variables
        l = header_label("Variables:")
        layout.addWidget(l)

        var_widget = QtGui.QWidget()
        layout.addWidget(var_widget)

        var_layout = QtGui.QHBoxLayout()
        var_widget.setLayout(var_layout)
        self.var_labels = (QtGui.QLabel(), QtGui.QLabel(), QtGui.QLabel())
        for label in self.var_labels:
            var_layout.addWidget(label)

        # GM
        self.gm_label = QtGui.QLabel()
        layout.addWidget(header_label("Graphics Method:"))
        layout.addWidget(self.gm_label)

        # Template
        self.tmpl_label = QtGui.QLabel()
        layout.addWidget(header_label("Template:"))
        layout.addWidget(self.tmpl_label)
Exemple #7
0
    def __init__(self, canvas, row, col, parent=None, f=0):
        super(PlotInfo, self).__init__(parent=parent, f=f)

        if callable(canvas):
            self._canvasfunc = canvas
        else:
            self._canvas = canvas

        self.manager = PlotManager(self)
        self.manager.row = row
        self.manager.col = col
        self.manager.removed.connect(self.removeSelf)
        # Icon to display till we actually get some data
        self.newIcon = QtGui.QLabel(self)
        self.newIcon.setPixmap(icon("add_plot.svg").pixmap(128, 128))

        layout = QtGui.QVBoxLayout()
        # Cache for later
        self.dataLayout = layout

        # Variables
        l = header_label("Variables:")
        layout.addWidget(l)

        var_widget = QtGui.QWidget()
        layout.addWidget(var_widget)

        var_layout = QtGui.QHBoxLayout()
        var_widget.setLayout(var_layout)
        self.var_labels = (QtGui.QLabel(), QtGui.QLabel(), QtGui.QLabel())
        for label in self.var_labels:
            var_layout.addWidget(label)

        # GM
        self.gm_label = QtGui.QLabel()
        layout.addWidget(header_label("Graphics Method:"))
        layout.addWidget(self.gm_label)

        # Template
        self.tmpl_label = QtGui.QLabel()
        layout.addWidget(header_label("Template:"))
        layout.addWidget(self.tmpl_label)
Exemple #8
0
    def __init__(self, parent=None):
        super(AnimationControls, self).__init__(parent=parent)

        layout = QtGui.QVBoxLayout()

        layout.addWidget(header_label("Animation"))

        row = QtGui.QHBoxLayout()

        smallButton = QtCore.QSize(24, 24)
        bigButton = QtCore.QSize(32, 32)

        skipBack = QtGui.QPushButton(icon("skipBack.png"), '')
        skipBack.setToolTip("Skip to start")
        skipBack.setIconSize(smallButton)
        skipBack.clicked.connect(self.skipToStart)
        row.addWidget(skipBack)
        self.skipBack = skipBack

        self.scrubber = ToolTipSlider()
        self.scrubber.setOrientation(QtCore.Qt.Horizontal)
        self.scrubber.valueChanged.connect(self.changeFrame)
        scrubber_labeled = LabeledWidget()
        scrubber_labeled.widget = self.scrubber
        scrubber_labeled.label = "Current Frame"
        row.addWidget(scrubber_labeled)

        skipForward = QtGui.QPushButton(icon("skipForward.png"), '')
        skipForward.setToolTip("Skip to end")
        skipForward.setIconSize(smallButton)
        skipForward.clicked.connect(self.skipToEnd)
        row.addWidget(skipForward)
        self.skipForward = skipForward

        layout.addLayout(row)
        row = QtGui.QHBoxLayout()

        stepBack = QtGui.QPushButton(icon("stepBack.png"), "")
        stepBack.setIconSize(smallButton)
        stepBack.setToolTip("Step one frame backwards")
        stepBack.clicked.connect(self.stepBackOne)
        self.stepBack = stepBack
        row.addWidget(stepBack)

        self.playpause = QtGui.QPushButton(icon("play.png"), "")
        self.playpause.setToolTip("Play")
        self.playpause.setIconSize(bigButton)
        self.playpause.setCheckable(True)
        self.playpause.clicked.connect(self.togglePlayback)
        row.addWidget(self.playpause)

        stepForward = QtGui.QPushButton(icon("stepForward.png"), "")
        stepForward.setToolTip("Step one frame forward")
        stepForward.setIconSize(smallButton)
        stepForward.clicked.connect(self.stepForwardOne)
        row.addWidget(stepForward)
        self.stepForward = stepForward

        layout.addLayout(row)

        self.speed = ToolTipSlider()
        self.speed.setOrientation(QtCore.Qt.Horizontal)
        self.speed.valueChanged.connect(self.speedChanged.emit)
        speed_labeled = LabeledWidget()
        speed_labeled.widget = self.speed
        speed_labeled.label = "Frames per Second"

        layout.addWidget(speed_labeled)
        self.setLayout(layout)

        # Starts at frame 0
        self.stepBack.setEnabled(False)
        self.skipBack.setEnabled(False)