Example #1
0
    def set_data(self, data):
        """
        Change datasets

        :parm data: :class:`~glue.core.data.Data` instance
        """

        # remove old widgets
        self._clear()

        self._data = data

        if data is None or data.ndim < 3:
            return

        # create slider widget for each dimension...
        for i, s in enumerate(data.shape):
            slider = SliceWidget(data.get_world_component_id(i).label,
                                 hi=s - 1)

            if i == self.ndim - 1:
                slider.mode = 'x'
            elif i == self.ndim - 2:
                slider.mode = 'y'
            else:
                slider.mode = 'slice'
            self._slices.append(slider)

            # save ref to prevent PySide segfault
            self.__on_slice = partial(self._on_slice, i)
            self.__on_mode = partial(self._on_mode, i)

            slider.slice_changed.connect(self.__on_slice)
            slider.mode_changed.connect(self.__on_mode)
            if s == 1:
                slider.freeze()

        # ... and add to the layout
        for s in self._slices[::-1]:
            self.layout.addWidget(s)
            if s is not self._slices[0]:
                line = QtGui.QFrame()
                line.setFrameShape(QtGui.QFrame.HLine)
                line.setFrameShadow(QtGui.QFrame.Sunken)
                self.layout.addWidget(line)
            s.show()  # this somehow fixes #342

        self.layout.addStretch(5)
Example #2
0
    def setupUi(self, ScatterWidget):
        ScatterWidget.setObjectName("ScatterWidget")
        ScatterWidget.resize(300, 349)
        ScatterWidget.setBaseSize(QtCore.QSize(555, 500))
        ScatterWidget.setFocusPolicy(QtCore.Qt.StrongFocus)
        ScatterWidget.setStyleSheet("")
        self.horizontalLayout = QtGui.QHBoxLayout(ScatterWidget)
        self.horizontalLayout.setContentsMargins(3, 2, 2, 4)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.option_dashboard = QtGui.QWidget(ScatterWidget)
        self.option_dashboard.setObjectName("option_dashboard")
        self.verticalLayout = QtGui.QVBoxLayout(self.option_dashboard)
        self.verticalLayout.setSpacing(4)
        self.verticalLayout.setContentsMargins(0, 0, 0, 10)
        self.verticalLayout.setObjectName("verticalLayout")
        self.xAxisLayout = QtGui.QHBoxLayout()
        self.xAxisLayout.setSpacing(8)
        self.xAxisLayout.setContentsMargins(0, 0, 0, 0)
        self.xAxisLayout.setObjectName("xAxisLayout")
        self.xlabel = QtGui.QLabel(self.option_dashboard)
        self.xlabel.setObjectName("xlabel")
        self.xAxisLayout.addWidget(self.xlabel)
        self.xAxisComboBox = QtGui.QComboBox(self.option_dashboard)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.xAxisComboBox.sizePolicy().hasHeightForWidth())
        self.xAxisComboBox.setSizePolicy(sizePolicy)
        self.xAxisComboBox.setSizeAdjustPolicy(
            QtGui.QComboBox.AdjustToMinimumContentsLength)
        self.xAxisComboBox.setObjectName("xAxisComboBox")
        self.xAxisLayout.addWidget(self.xAxisComboBox)
        self.xLogCheckBox = QtGui.QCheckBox(self.option_dashboard)
        self.xLogCheckBox.setObjectName("xLogCheckBox")
        self.xAxisLayout.addWidget(self.xLogCheckBox)
        self.xFlipCheckBox = QtGui.QCheckBox(self.option_dashboard)
        self.xFlipCheckBox.setObjectName("xFlipCheckBox")
        self.xAxisLayout.addWidget(self.xFlipCheckBox)
        self.xAxisLayout.setStretch(1, 4)
        self.verticalLayout.addLayout(self.xAxisLayout)
        self.yAxisLayout = QtGui.QHBoxLayout()
        self.yAxisLayout.setSpacing(8)
        self.yAxisLayout.setObjectName("yAxisLayout")
        self.ylabel = QtGui.QLabel(self.option_dashboard)
        self.ylabel.setObjectName("ylabel")
        self.yAxisLayout.addWidget(self.ylabel)
        self.yAxisComboBox = QtGui.QComboBox(self.option_dashboard)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.yAxisComboBox.sizePolicy().hasHeightForWidth())
        self.yAxisComboBox.setSizePolicy(sizePolicy)
        self.yAxisComboBox.setSizeAdjustPolicy(
            QtGui.QComboBox.AdjustToMinimumContentsLength)
        self.yAxisComboBox.setObjectName("yAxisComboBox")
        self.yAxisLayout.addWidget(self.yAxisComboBox)
        self.yLogCheckBox = QtGui.QCheckBox(self.option_dashboard)
        self.yLogCheckBox.setObjectName("yLogCheckBox")
        self.yAxisLayout.addWidget(self.yLogCheckBox)
        self.yFlipCheckBox = QtGui.QCheckBox(self.option_dashboard)
        self.yFlipCheckBox.setObjectName("yFlipCheckBox")
        self.yAxisLayout.addWidget(self.yFlipCheckBox)
        self.yAxisLayout.setStretch(1, 4)
        self.verticalLayout.addLayout(self.yAxisLayout)
        self.horizontalLayout_3 = QtGui.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.snapLimits = QtGui.QPushButton(self.option_dashboard)
        self.snapLimits.setObjectName("snapLimits")
        self.horizontalLayout_3.addWidget(self.snapLimits)
        self.swapAxes = QtGui.QPushButton(self.option_dashboard)
        self.swapAxes.setObjectName("swapAxes")
        self.horizontalLayout_3.addWidget(self.swapAxes)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        self.hidden_attributes = QtGui.QCheckBox(self.option_dashboard)
        self.hidden_attributes.setObjectName("hidden_attributes")
        self.verticalLayout.addWidget(self.hidden_attributes)
        self.line = QtGui.QFrame(self.option_dashboard)
        self.line.setFrameShadow(QtGui.QFrame.Sunken)
        self.line.setLineWidth(2)
        self.line.setMidLineWidth(0)
        self.line.setFrameShape(QtGui.QFrame.HLine)
        self.line.setFrameShadow(QtGui.QFrame.Sunken)
        self.line.setObjectName("line")
        self.verticalLayout.addWidget(self.line)
        self.label = QtGui.QLabel(self.option_dashboard)
        self.label.setFrameShape(QtGui.QFrame.NoFrame)
        self.label.setFrameShadow(QtGui.QFrame.Sunken)
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.verticalLayout.addWidget(self.label)
        self.horizontalLayout_4 = QtGui.QHBoxLayout()
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.xmin_label = QtGui.QLabel(self.option_dashboard)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.xmin_label.sizePolicy().hasHeightForWidth())
        self.xmin_label.setSizePolicy(sizePolicy)
        self.xmin_label.setMinimumSize(QtCore.QSize(40, 0))
        self.xmin_label.setObjectName("xmin_label")
        self.horizontalLayout_4.addWidget(self.xmin_label)
        self.xmin = QtGui.QLineEdit(self.option_dashboard)
        self.xmin.setObjectName("xmin")
        self.horizontalLayout_4.addWidget(self.xmin)
        self.xmax_label = QtGui.QLabel(self.option_dashboard)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.xmax_label.sizePolicy().hasHeightForWidth())
        self.xmax_label.setSizePolicy(sizePolicy)
        self.xmax_label.setMinimumSize(QtCore.QSize(40, 0))
        self.xmax_label.setObjectName("xmax_label")
        self.horizontalLayout_4.addWidget(self.xmax_label)
        self.xmax = QtGui.QLineEdit(self.option_dashboard)
        self.xmax.setObjectName("xmax")
        self.horizontalLayout_4.addWidget(self.xmax)
        self.verticalLayout.addLayout(self.horizontalLayout_4)
        self.horizontalLayout_5 = QtGui.QHBoxLayout()
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.ymin_label = QtGui.QLabel(self.option_dashboard)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.ymin_label.sizePolicy().hasHeightForWidth())
        self.ymin_label.setSizePolicy(sizePolicy)
        self.ymin_label.setMinimumSize(QtCore.QSize(40, 0))
        self.ymin_label.setObjectName("ymin_label")
        self.horizontalLayout_5.addWidget(self.ymin_label)
        self.ymin = QtGui.QLineEdit(self.option_dashboard)
        self.ymin.setObjectName("ymin")
        self.horizontalLayout_5.addWidget(self.ymin)
        self.ymax_label = QtGui.QLabel(self.option_dashboard)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
                                       QtGui.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.ymax_label.sizePolicy().hasHeightForWidth())
        self.ymax_label.setSizePolicy(sizePolicy)
        self.ymax_label.setMinimumSize(QtCore.QSize(40, 0))
        self.ymax_label.setObjectName("ymax_label")
        self.horizontalLayout_5.addWidget(self.ymax_label)
        self.ymax = QtGui.QLineEdit(self.option_dashboard)
        self.ymax.setObjectName("ymax")
        self.horizontalLayout_5.addWidget(self.ymax)
        self.verticalLayout.addLayout(self.horizontalLayout_5)
        spacerItem = QtGui.QSpacerItem(1, 1, QtGui.QSizePolicy.Minimum,
                                       QtGui.QSizePolicy.Expanding)
        self.verticalLayout.addItem(spacerItem)
        self.horizontalLayout.addWidget(self.option_dashboard)

        self.retranslateUi(ScatterWidget)
        QtCore.QMetaObject.connectSlotsByName(ScatterWidget)