def __init__(self, parent=None, dataViewer=None): """Constructor :param QWidget parent: The parent of the widget :param DataViewer dataViewer: The connected `DataViewer` """ super(DataViewerSelector, self).__init__(parent) self.__group = None self.__buttons = {} self.__buttonLayout = None self.__buttonDummy = None self.__dataViewer = None # Create the fixed layout self.setLayout(qt.QHBoxLayout()) layout = self.layout() layout.setContentsMargins(0, 0, 0, 0) self.__buttonLayout = qt.QHBoxLayout() self.__buttonLayout.setContentsMargins(0, 0, 0, 0) layout.addLayout(self.__buttonLayout) layout.addStretch(1) if dataViewer is not None: self.setDataViewer(dataViewer)
def makeTab(self): tab = qt.QWidget() tab.color = self.color layout2 = qt.QHBoxLayout() layout2.addWidget(qt.QLabel('Symbol:')) tab.symbolComboBox = SymbolComboBox(tab) symbolDelegate = SymbolDelegate(tab) tab.symbolComboBox.setItemDelegate(symbolDelegate) tab.symbolComboBox.addItems(tuple(lineSymbolsText.keys())) tab.symbolComboBox.currentIndexChanged.connect( partial(self.comboBoxChanged, tab, "size")) layout2.addWidget(tab.symbolComboBox, 1) tab.sizeLabel = qt.QLabel('Size:') layout2.addWidget(tab.sizeLabel) tab.sizeSpinBox = qt.QDoubleSpinBox() tab.sizeSpinBox.setDecimals(0) tab.sizeSpinBox.setMaximum(10) tab.sizeSpinBox.setMinimum(1) tab.sizeSpinBox.setSingleStep(1) tab.sizeSpinBox.valueChanged.connect( partial(self.updateFromSpinBox, tab, "size")) layout2.addWidget(tab.sizeSpinBox, 0) layout3 = qt.QHBoxLayout() layout3.addWidget(qt.QLabel('Style:')) tab.styleComboBox = LineStyleComboBox(tab) lineStyleDelegate = LineStyleDelegate(tab) tab.styleComboBox.setItemDelegate(lineStyleDelegate) tab.styleComboBox.addItems(tuple(lineStylesText.keys())) tab.styleComboBox.currentIndexChanged.connect( partial(self.comboBoxChanged, tab, "width")) layout3.addWidget(tab.styleComboBox, 1) tab.widthLabel = qt.QLabel('Width:') layout3.addWidget(tab.widthLabel) tab.widthSpinBox = qt.QDoubleSpinBox() tab.widthSpinBox.setDecimals(1) tab.widthSpinBox.setMaximum(10) tab.widthSpinBox.setMinimum(0.1) tab.widthSpinBox.setSingleStep(0.5) tab.widthSpinBox.valueChanged.connect( partial(self.updateFromSpinBox, tab, "width")) layout3.addWidget(tab.widthSpinBox, 0) layout4 = qt.QHBoxLayout() tab.yAxisLabel = qt.QLabel("Y Axis:") tab.yAxisLeft = qt.QRadioButton("left") tab.yAxisRight = qt.QRadioButton("right") layout4.addWidget(tab.yAxisLabel) layout4.addWidget(tab.yAxisLeft) layout4.addWidget(tab.yAxisRight) layout4.addStretch() layout = qt.QVBoxLayout() layout.addLayout(layout3) layout.addLayout(layout2) layout.addLayout(layout4) tab.setLayout(layout) return tab
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.setWindowTitle('Histogram') self.__itemRef = None # weakref on the item to track layout = qt.QVBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(0) # Plot # Lazy import to avoid circular dependencies from silx.gui.plot.PlotWindow import Plot1D self.__plot = Plot1D(self) layout.addWidget(self.__plot) self.__plot.setDataMargins(0.1, 0.1, 0.1, 0.1) self.__plot.getXAxis().setLabel("Value") self.__plot.getYAxis().setLabel("Count") posInfo = self.__plot.getPositionInfoWidget() posInfo.setSnappingMode(posInfo.SNAPPING_CURVE) # Histogram controls controlsWidget = qt.QWidget(self) layout.addWidget(controlsWidget) controlsLayout = qt.QHBoxLayout(controlsWidget) controlsLayout.setContentsMargins(4, 4, 4, 4) controlsLayout.addWidget(qt.QLabel("<b>Histogram:<b>")) controlsLayout.addWidget(qt.QLabel("N. bins:")) self.__nbinsLineEdit = _IntEdit(self) self.__nbinsLineEdit.setRange(2, 9999) self.__nbinsLineEdit.sigValueChanged.connect( self.__updateHistogramFromControls) controlsLayout.addWidget(self.__nbinsLineEdit) self.__rangeLabel = qt.QLabel("Range:") controlsLayout.addWidget(self.__rangeLabel) self.__rangeSlider = RangeSlider(parent=self) self.__rangeSlider.sigValueChanged.connect( self.__updateHistogramFromControls) self.__rangeSlider.sigValueChanged.connect(self.__rangeChanged) controlsLayout.addWidget(self.__rangeSlider) controlsLayout.addStretch(1) # Stats display statsWidget = qt.QWidget(self) layout.addWidget(statsWidget) statsLayout = qt.QHBoxLayout(statsWidget) statsLayout.setContentsMargins(4, 4, 4, 4) self.__statsWidgets = dict( (name, _StatWidget(parent=statsWidget, name=name)) for name in ("min", "max", "mean", "std", "sum")) for widget in self.__statsWidgets.values(): statsLayout.addWidget(widget) statsLayout.addStretch(1)
def makeHeaderTab(self): self.headerNRB = qt.QRadioButton("has") self.headerNEdit = QLineEditSelectRB(rb=self.headerNRB) self.headerNEdit.setFixedWidth(28) self.headerNEdit.setValidator( qt.QIntValidator(0, cco.MAX_HEADER_LINES, self)) self.headerNLabel2 = qt.QLabel("lines") self.headerSRB = qt.QRadioButton("has lines beginning with") self.headerSEdit = QLineEditSelectRB(rb=self.headerSRB) self.headerSEdit.setFixedWidth(16) self.headerERB = qt.QRadioButton("ends with line containing") self.headerEEdit = QLineEditSelectRB(rb=self.headerERB) self.headerEEdit.setMinimumWidth(30) self.headerSRB.setChecked(True) headerLayoutN = qt.QHBoxLayout() headerLayoutN.addWidget(self.headerNRB) headerLayoutN.addWidget(self.headerNEdit) headerLayoutN.addWidget(self.headerNLabel2) headerLayoutN.addStretch() headerLayoutS = qt.QHBoxLayout() headerLayoutS.addWidget(self.headerSRB) headerLayoutS.addWidget(self.headerSEdit) headerLayoutS.addStretch() headerLayoutE = qt.QHBoxLayout() headerLayoutE.addWidget(self.headerERB) headerLayoutE.addWidget(self.headerEEdit, 1) headerLayoutE.addStretch() headerLayout = qt.QVBoxLayout() headerLayout.setContentsMargins(2, 0, 0, 0) headerLayout.addLayout(headerLayoutN) headerLayout.addLayout(headerLayoutS) headerLayout.addLayout(headerLayoutE) headerLayout.addStretch() tab = qt.QWidget(self) tab.setLayout(headerLayout) tab.setSizePolicy(qt.QSizePolicy.Expanding, qt.QSizePolicy.Fixed) self.headerKW = 'skiprows', 'comments', 'lastSkipRowContains' self.fullHeaderKW = ['dataFormat.' + kw for kw in self.headerKW] self.radioButtons = self.headerNRB, self.headerSRB, self.headerERB self.edits = self.headerNEdit, self.headerSEdit, self.headerEEdit self.registerExclusivePropGroup( tab, [self.radioButtons, self.edits], 'header', props=self.fullHeaderKW, convertTypes=[int, None, None]) return tab
def makeColorGroup(self): self.colorIndividual = qt.QRadioButton("individual") self.colorIndividualButton = QColorLoop(self, [self.color]) self.colorIndividualButton.clicked.connect( partial(self.openColorDialog, gco.COLOR_POLICY_INDIVIDUAL)) self.colorLoop1 = qt.QRadioButton("loop1") self.colorLoop1Button = QColorLoop(self, gco.colorCycle1) self.colorLoop1Button.clicked.connect( partial(self.openColorDialog, gco.COLOR_POLICY_LOOP1)) self.colorLoop2 = qt.QRadioButton("loop2") self.colorLoop2Button = QColorLoop(self, gco.colorCycle2) self.colorLoop2Button.clicked.connect( partial(self.openColorDialog, gco.COLOR_POLICY_LOOP2)) self.colorGradient = qt.QRadioButton("gradient") gradient = gco.makeGradientCollection(self.color1, self.color2) self.colorGradientButton = QColorLoop(self, gradient) self.colorGradientButton.clicked.connect( partial(self.openColorDialog, gco.COLOR_POLICY_GRADIENT)) self.colorAutoCollective = qt.QCheckBox( "keep collective color rule\nwhen data model changes") self.colorAutoCollective.setEnabled(self.isGroupSelected or self.isTopGroupSelected) self.colorRadioButtons = (self.colorIndividualButton, self.colorLoop1, self.colorLoop2, self.colorGradient) layoutC = qt.QVBoxLayout() layoutC.setContentsMargins(10, 0, 2, 2) layoutH = qt.QHBoxLayout() layoutH.addWidget(self.colorIndividual) layoutH.addWidget(self.colorIndividualButton) layoutC.addLayout(layoutH) layoutH = qt.QHBoxLayout() layoutH.addWidget(self.colorLoop1) layoutH.addWidget(self.colorLoop1Button) layoutC.addLayout(layoutH) layoutH = qt.QHBoxLayout() layoutH.addWidget(self.colorLoop2) layoutH.addWidget(self.colorLoop2Button) layoutC.addLayout(layoutH) layoutH = qt.QHBoxLayout() layoutH.addWidget(self.colorGradient) layoutH.addWidget(self.colorGradientButton) layoutC.addLayout(layoutH) layoutC.addWidget(self.colorAutoCollective) groupColor = qt.QGroupBox('Color:') groupColor.setLayout(layoutC) return groupColor
def __init__(self, parent=None, dataCollection=None, formatStr='{0}'): super(CalibrateEnergyWidget, self).__init__(parent) layout = qt.QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layoutB = qt.QHBoxLayout() self.autoSetButton = qt.QPushButton('auto set references') # self.autoSetButton.setMinimumWidth(120) layoutB.addWidget(self.autoSetButton) self.clearButton = qt.QPushButton('clear') self.clearButton.setMinimumWidth(36) self.clearButton.clicked.connect(self.clear) layoutB.addWidget(self.clearButton) self.acceptButton = qt.QPushButton('accept') self.acceptButton.setMinimumWidth(46) layoutB.addWidget(self.acceptButton) layoutB.addStretch() layout.addLayout(layoutB) header = ['reference data', 'energy', 'DCM', 'FWHM'] self.calibrationModel = CalibrationModel(dataCollection, header, formatStr) self.table = CalibrateTableView(self, self.calibrationModel) layout.addWidget(self.table) self.setLayout(layout)
def __init__(self, parent): super(PlanesWidget, self).__init__(parent) self.setSizePolicy(qt.QSizePolicy.Minimum, qt.QSizePolicy.Minimum) layout0 = qt.QHBoxLayout() self.setLayout(layout0) layout0.setContentsMargins(0, 0, 0, 0) layout0.addWidget(qt.QLabel("Axes selection:")) # By default, the first dimension (dim0) is the frame index/depth/z, # the second dimension is the image row number/y axis # and the third dimension is the image column index/x axis # 1 # | 0 # |/__2 self.qcbAxisSelection = qt.QComboBox(self) self.qcbAxisSelection.addItem(icons.getQIcon("cube-front"), 'Dim1-Dim2') self.qcbAxisSelection.addItem(icons.getQIcon("cube-bottom"), 'Dim0-Dim2') self.qcbAxisSelection.addItem(icons.getQIcon("cube-left"), 'Dim0-Dim1') self.qcbAxisSelection.currentIndexChanged[int].connect( self.__planeSelectionChanged) layout0.addWidget(self.qcbAxisSelection)
def __init__(self, parent=None): qt.QDialog.__init__(self, parent) self.setWindowTitle("Set print size preferences") layout = qt.QVBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(0) self.configurationWidget = PrintGeometryWidget(self) hbox = qt.QWidget(self) hboxLayout = qt.QHBoxLayout(hbox) self.okButton = qt.QPushButton(hbox) self.okButton.setText("Accept") self.okButton.setAutoDefault(False) self.rejectButton = qt.QPushButton(hbox) self.rejectButton.setText("Dismiss") self.rejectButton.setAutoDefault(False) self.okButton.clicked.connect(self.accept) self.rejectButton.clicked.connect(self.reject) hboxLayout.setContentsMargins(0, 0, 0, 0) hboxLayout.setSpacing(2) # hboxLayout.addWidget(qt.HorizontalSpacer(hbox)) hboxLayout.addWidget(self.okButton) hboxLayout.addWidget(self.rejectButton) # hboxLayout.addWidget(qt.HorizontalSpacer(hbox)) layout.addWidget(self.configurationWidget) layout.addWidget(hbox)
def __init__(self, parent=None): qt.QDialog.__init__(self, parent) self.setWindowTitle("Strip and Snip Configuration Window") self.mainLayout = qt.QVBoxLayout(self) self.mainLayout.setContentsMargins(0, 0, 0, 0) self.mainLayout.setSpacing(2) self.parametersWidget = BackgroundWidget(self) self.mainLayout.addWidget(self.parametersWidget) hbox = qt.QWidget(self) hboxLayout = qt.QHBoxLayout(hbox) hboxLayout.setContentsMargins(0, 0, 0, 0) hboxLayout.setSpacing(2) self.okButton = qt.QPushButton(hbox) self.okButton.setText("OK") self.okButton.setAutoDefault(False) self.dismissButton = qt.QPushButton(hbox) self.dismissButton.setText("Cancel") self.dismissButton.setAutoDefault(False) hboxLayout.addWidget(HorizontalSpacer(hbox)) hboxLayout.addWidget(self.okButton) hboxLayout.addWidget(self.dismissButton) self.mainLayout.addWidget(hbox) self.dismissButton.clicked.connect(self.reject) self.okButton.clicked.connect(self.accept) self.output = {} """Configuration dictionary containing following fields:
def __init__(self, parent=None, plot=None, rois=None): qt.QDialog.__init__(self, parent=parent) assert plot is not None assert rois is not None self._plot = plot self._rois = rois self.setLayout(qt.QVBoxLayout()) # define the selection widget self._selection_widget = qt.QWidget() self._selection_widget.setLayout(qt.QHBoxLayout()) self._kindCB = qt.QComboBox(parent=self) self._selection_widget.layout().addWidget(self._kindCB) self._itemCB = qt.QComboBox(parent=self) self._selection_widget.layout().addWidget(self._itemCB) self._roiCB = qt.QComboBox(parent=self) self._selection_widget.layout().addWidget(self._roiCB) self.layout().addWidget(self._selection_widget) # define modal buttons types = qt.QDialogButtonBox.Ok | qt.QDialogButtonBox.Cancel self._buttonsModal = qt.QDialogButtonBox(parent=self) self._buttonsModal.setStandardButtons(types) self.layout().addWidget(self._buttonsModal) self._buttonsModal.accepted.connect(self.accept) self._buttonsModal.rejected.connect(self.reject) # connect signal / slot self._kindCB.currentIndexChanged.connect(self._updateValidItemAndRoi)
def __init__(self, parent=None): qt.QDialog.__init__(self, parent) self.tabWidget = qt.QTabWidget(self) layout = qt.QVBoxLayout(self) layout.addWidget(self.tabWidget) layout2 = qt.QHBoxLayout(None) # self.buttonHelp = qt.QPushButton(self) # self.buttonHelp.setText("Help") # layout2.addWidget(self.buttonHelp) self.buttonDefault = qt.QPushButton(self) self.buttonDefault.setText("Undo changes") layout2.addWidget(self.buttonDefault) spacer = qt.QSpacerItem(20, 20, qt.QSizePolicy.Expanding, qt.QSizePolicy.Minimum) layout2.addItem(spacer) self.buttonOk = qt.QPushButton(self) self.buttonOk.setText("OK") layout2.addWidget(self.buttonOk) self.buttonCancel = qt.QPushButton(self) self.buttonCancel.setText("Cancel") layout2.addWidget(self.buttonCancel) layout.addLayout(layout2) self.buttonOk.clicked.connect(self.accept) self.buttonCancel.clicked.connect(self.reject)
def __init__(self, parent=None): super(ScalarWidget, self).__init__() self.map = MapWidget(self) self.value = qt.QLabel(self) self.value.setText('scalar value') self.setLayout(qt.QHBoxLayout()) splitter = qt.QSplitter() splitter.addWidget(self.value) splitter.addWidget(self.map) splitter.setSizes((300, 300)) self.layout().addWidget(splitter) # connect the interpolation thingies self.map.interpolBox.valueChanged.connect(self.updateMap) # connect the selection tools self.map.indexSelectionChanged.connect(self.selectByIndex) self.map.clickSelectionChanged.connect(self.selectByPosition) self.map.selectionCleared.connect(self.clearSelection) # connect the positions button self.map.positionsAction.triggered.connect(self.togglePositions) # connect the mask widget to the update self.map.getMaskToolsDockWidget().widget()._mask.sigChanged.connect( self.updateImage) # keep track of map selections by ROI or by index self.selectionMode = 'roi' # 'roi' or 'ind'
def addWidgets(widgets, leftMargin=0, Type='h', align=None, spacing=None): # create a mother widget to make sure both qLabel & qLineEdit will # always be displayed side by side widget = qt.QWidget() if Type == 'h': widget.setLayout(qt.QHBoxLayout()) else: widget.setLayout(qt.QVBoxLayout()) if align == 'center': widget.layout().setAlignment(qt.Qt.AlignCenter) if align == 'bottom' or align == 'right': widget.layout().addStretch() widget.layout().setContentsMargins(0, 0, 0, 0) widget.layout().addSpacing(leftMargin) for wg in widgets: widget.layout().addWidget(wg) if align == 'uniform': if wg != widgets[-1]: widget.layout().addStretch() if align == 'top' or align == 'left': widget.layout().addStretch() return widget
def __init__(self, parent=None): super(XrfWidget, self).__init__() self.map = MapWidget(self) self.spectrum = SpectrumWidget(self) self.setLayout(qt.QHBoxLayout()) splitter = qt.QSplitter() splitter.addWidget(self.spectrum) splitter.addWidget(self.map) self.layout().addWidget(splitter) # connect the interpolation thingies self.map.interpolBox.valueChanged.connect(self.updateMap) # connect the positions button self.map.positionsAction.triggered.connect(self.togglePositions) # connect the selection tools self.map.indexSelectionChanged.connect(self.selectByIndex) self.map.clickSelectionChanged.connect(self.selectByPosition) self.map.selectionCleared.connect(self.clearSelection) # connect the mask widget to the update self.map.getMaskToolsDockWidget().widget()._mask.sigChanged.connect(self.updateSpectrum) self.spectrum.getCurvesRoiWidget().sigROISignal.connect(self.updateMap) # keep track of map selections by ROI or by index self.selectionMode = 'roi' # 'roi' or 'ind' # workaround to avoid multiple updates self.last_map_update = 0.0
def makeSplitterButton(self, name, splitter, indHandle, indSizes): handle = splitter.handle(indHandle) if handle is None: return isVerical = splitter.orientation() == qt.Qt.Horizontal if name == 'transform' and self.node.transformIn is not None: nameBut = name + ': ' + self.node.transformIn.name else: nameBut = name button = QSplitterButton(nameBut, handle, isVerical) button.setText(button.rawText) splitter.setHandleWidth(SPLITTER_WIDTH) po = qt.QSizePolicy(qt.QSizePolicy.Preferred, qt.QSizePolicy.Preferred) button.setSizePolicy(po) button.clicked.connect( partial(self.handleSplitterButton, button, indSizes)) if isVerical: sLayout = qt.QVBoxLayout() else: sLayout = qt.QHBoxLayout() sLayout.setContentsMargins(0, 0, 0, 0) sLayout.addStretch(1) sLayout.addWidget(button, 0) sLayout.addStretch(1) handle.setLayout(sLayout) self.splitterButtons[name] = button
def fillSplitterData(self): splitterInner = qt.QWidget(self.splitterData) self.pickWidget = qt.QWidget(splitterInner) labelPick = qt.QLabel('Pick data') cancelPick = qt.QPushButton('Cancel') cancelPick.setStyleSheet("QPushButton {background-color: tomato;}") cancelPick.clicked.connect(self.cancelPropsToPickedData) applyPick = qt.QPushButton('Apply') applyPick.setStyleSheet("QPushButton {background-color: lightgreen;}") applyPick.clicked.connect(self.applyPropsToPickedData) pickLayout = qt.QHBoxLayout() pickLayout.setContentsMargins(0, 0, 0, 0) pickLayout.addWidget(labelPick) pickLayout.addWidget(cancelPick, 0.5) pickLayout.addWidget(applyPick, 0.5) self.pickWidget.setLayout(pickLayout) self.pickWidget.setVisible(False) self.tree = DataTreeView(self.node, splitterInner) self.tree.model().needReplot.connect(self.replot) self.tree.selectionModel().selectionChanged.connect(self.selChanged) layout = qt.QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self.pickWidget) layout.addWidget(self.tree) splitterInner.setLayout(layout) self.combiner = CombineSpectraWidget(self.splitterData, self.node) self.splitterData.setStretchFactor(0, 1) # don't remove self.splitterData.setStretchFactor(1, 0) self.splitterData.setSizes([1, 0])
def fillSplitterFiles(self): splitterInner = qt.QWidget(self.splitterFiles) labelFilter = qt.QLabel('file filter') self.editFileFilter = qt.QLineEdit() self.editFileFilter.returnPressed.connect(self.setFileFilter) if hasattr(self.node, 'fileNameFilters'): self.editFileFilter.setText(', '.join(self.node.fileNameFilters)) self.files = FileTreeView(self.node) # self.files.doubleClicked.connect(self.loadFiles) self.files.model().directoryLoaded.connect(self._directoryIsLoaded) self.filesAutoAddCB = qt.QCheckBox("auto append fresh file TODO", self) fileFilterLayout = qt.QHBoxLayout() fileFilterLayout.addWidget(labelFilter) fileFilterLayout.addWidget(self.editFileFilter, 1) layout = qt.QVBoxLayout() layout.setContentsMargins(2, 0, 0, 0) layout.addLayout(fileFilterLayout) layout.addWidget(self.files) layout.addWidget(self.filesAutoAddCB) splitterInner.setLayout(layout) self.columnFormat = ColumnFormatWidget(self.splitterFiles, self.node) self.splitterFiles.setStretchFactor(0, 1) # don't remove self.splitterFiles.setStretchFactor(1, 0)
def __init__(self, parent=None): super(ProjectChooser, self).__init__(parent) layout = Qt.QVBoxLayout(self) self.__isValid = False self.__selectedPath = None group = GroupBox('Please select the project file to open.') layout.addWidget(group) grpLayout = Qt.QHBoxLayout(group) filePicker = FileChooser(fileMode=Qt.QFileDialog.ExistingFile) filePicker.setObjectName('PROJ_FILEPICKER') grpLayout.addWidget(filePicker) filePicker.sigSelectionChanged.connect(self.__filePicked) fileDialog = filePicker.fileDialog fileDialog.setNameFilters( ['Xsocs project files (*.prj)', 'Any files (*)']) group = GroupBox('Project Summary') layout.addWidget(group) grpLayout = Qt.QVBoxLayout(group) view = ProjectSummaryWidget() grpLayout.addWidget(view)
def addLabelWidgetUnit(labelText, QWidget, UnitText, labelWidth=None, align='left'): # create a mother widget to make sure both qLabel & qLineEdit will # always be displayed side by side widget = qt.QWidget() widget.setLayout(qt.QHBoxLayout()) widget.layout().setContentsMargins(0, 0, 0, 0) label = qt.QLabel(labelText) label.setAlignment(qt.Qt.AlignRight | qt.Qt.AlignVCenter) if labelWidth != None: label.setMinimumWidth(labelWidth) label.setMaximumWidth(labelWidth) unit = qt.QLabel(UnitText) if align.lower() == 'right': widget.layout().addStretch(1) widget.layout().addWidget(label) widget.layout().addWidget(QWidget) widget.layout().addWidget(unit) if align.lower() == 'left': widget.layout().addStretch(1) return widget
def __init__(self, parent=None): qt.QWidget.__init__(self, parent) self.resize(234, 53) grid_layout = qt.QGridLayout(self) grid_layout.setContentsMargins(11, 11, 11, 11) grid_layout.setSpacing(6) layout = qt.QHBoxLayout(None) layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(6) self.EstimateButton = qt.QPushButton(self) self.EstimateButton.setText("Estimate") layout.addWidget(self.EstimateButton) spacer = qt.QSpacerItem(20, 20, qt.QSizePolicy.Expanding, qt.QSizePolicy.Minimum) layout.addItem(spacer) self.StartFitButton = qt.QPushButton(self) self.StartFitButton.setText("Start Fit") layout.addWidget(self.StartFitButton) spacer_2 = qt.QSpacerItem(20, 20, qt.QSizePolicy.Expanding, qt.QSizePolicy.Minimum) layout.addItem(spacer_2) self.DismissButton = qt.QPushButton(self) self.DismissButton.setText("Dismiss") layout.addWidget(self.DismissButton) grid_layout.addLayout(layout, 0, 0)
def __init__(self, filenames=None): """ :param files_: List of HDF5 or Spec files (pathes or :class:`silx.io.spech5.SpecH5` or :class:`h5py.File` instances) """ qt.QMainWindow.__init__(self) self.setWindowTitle("Silx HDF5 widget example") self.__plot = silx.gui.plot.Plot2D(parent=self) dummy = numpy.array([[0]]) self.__plot.addImage(dummy, legend="image", z=-10, replace=False) dummy = numpy.array([[[0, 0, 0, 0]]]) self.__plot.addImage(dummy, legend="iso-pixels", z=0, replace=False) self.__algo = None self.__polygons = [] self.__customPolygons = [] self.__image = None self.__mask = None self.__customValue = None mainPanel = qt.QWidget(self) layout = qt.QHBoxLayout() layout.addWidget(self.__createConfigurationPanel(self)) layout.addWidget(self.__plot) mainPanel.setLayout(layout) self.setCentralWidget(mainPanel)
def __init__(self, parent=None): qt.QWidget.__init__(self, parent) self.resize(535, 47) layout = qt.QHBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(6) self.StatusLabel = qt.QLabel(self) self.StatusLabel.setText("Status:") layout.addWidget(self.StatusLabel) self.StatusLine = qt.QLineEdit(self) self.StatusLine.setText("Ready") self.StatusLine.setReadOnly(1) layout.addWidget(self.StatusLine) self.ChisqLabel = qt.QLabel(self) self.ChisqLabel.setText("Reduced chisq:") layout.addWidget(self.ChisqLabel) self.ChisqLine = qt.QLineEdit(self) self.ChisqLine.setMaximumSize(qt.QSize(16000, 32767)) self.ChisqLine.setText("") self.ChisqLine.setReadOnly(1) layout.addWidget(self.ChisqLine)
def _buildNorm(self): self._qgbNorm = qt.QGroupBox(parent=self) self._qgbNorm.setLayout(qt.QHBoxLayout()) self._qgbNorm._qrbLinear = qt.QRadioButton('linear') self._qgbNorm._qrbLog = qt.QRadioButton('log') self._qgbNorm.layout().addWidget(self._qgbNorm._qrbLinear) self._qgbNorm.layout().addWidget(self._qgbNorm._qrbLog)
def __init__(self, parent=None): super(NewProjectPage, self).__init__(parent) layout = Qt.QVBoxLayout(self) self.setTitle('X-Socs') self.setSubTitle('New project : select a project directory.') icon = XsocsIcons.getQPixmap('xsocs') self.setPixmap(Qt.QWizard.WatermarkPixmap, icon) icon = XsocsIcons.getQPixmap('logo') self.setPixmap(Qt.QWizard.LogoPixmap, icon) self.__nextId = XsocsWizard.SelectDataId self.__isComplete = False self.__selectedPath = None group = GroupBox('Create new project into...') layout.addWidget(group) grpLayout = Qt.QHBoxLayout(group) filePicker = FileChooser(fileMode=Qt.QFileDialog.Directory, appendPath=os.path.sep + 'xsocs.prj', options=Qt.QFileDialog.ShowDirsOnly) filePicker.sigSelectionChanged.connect(self.__filePicked) grpLayout.addWidget(filePicker)
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.setWindowTitle('Histogram') self.__itemRef = None # weakref on the item to track layout = qt.QVBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(0) # Plot # Lazy import to avoid circular dependencies from silx.gui.plot.PlotWindow import Plot1D self.__plot = Plot1D(self) layout.addWidget(self.__plot) self.__plot.setDataMargins(0.1, 0.1, 0.1, 0.1) self.__plot.getXAxis().setLabel("Value") self.__plot.getYAxis().setLabel("Count") posInfo = self.__plot.getPositionInfoWidget() posInfo.setSnappingMode(posInfo.SNAPPING_CURVE) # Stats display statsWidget = qt.QWidget(self) layout.addWidget(statsWidget) statsLayout = qt.QHBoxLayout(statsWidget) statsLayout.setContentsMargins(4, 4, 4, 4) self.__statsWidgets = dict( (name, _StatWidget(parent=statsWidget, name=name)) for name in ("min", "max", "mean", "std", "sum")) for widget in self.__statsWidgets.values(): statsLayout.addWidget(widget) statsLayout.addStretch(1)
def _buildName(self): wName = qt.QWidget(self) wName.setLayout(qt.QHBoxLayout()) wName.layout().addWidget(qt.QLabel('name')) self._qcbName = qt.QComboBox(wName) for val in Colormap.Colormap.getSupportedColormaps(): self._qcbName.addItem(val)
def changeWindowFlags(self, node, evt): if self.isFloating(): # The dockWidget will automatically regain it's Qt::widget flag # when it becomes docked again self.setWindowFlags(qt.Qt.Window | qt.Qt.CustomizeWindowHint | qt.Qt.WindowMaximizeButtonHint) # setWindowFlags calls setParent() when changing the flags for a # window, causing the widget to be hidden, so: self.show() # Custom title bar: self.titleBar = qt.QWidget() self.titleBar.setAutoFillBackground(True) self.titleBar.setStyleSheet("QWidget {font: bold; font-size: " + fontSize + "pt;}") pal = self.titleBar.palette() pal.setColor(qt.QPalette.Window, qt.QColor("lightgray")) self.titleBar.setPalette(pal) height = qt.QApplication.style().pixelMetric( qt.QStyle.PM_TitleBarHeight) self.titleBar.setMaximumHeight(height) layout = qt.QHBoxLayout() self.titleBar.setLayout(layout) buttonSize = qt.QSize(height - 16, height - 16) self.titleIcon = qt.QLabel() # self.titleIcon.setPixmap(self.parent().runIcon.pixmap(buttonSize)) self.titleIcon.setPixmap(node.widget.dimIcon.pixmap(buttonSize)) self.titleIcon.setVisible(True) layout.addWidget(self.titleIcon, 0) self.title = qt.QLabel(self.windowTitle()) layout.addWidget(self.title, 0) layout.setContentsMargins(4, 4, 4, 4) layout.addStretch() self.dockButton = qt.QToolButton(self) self.dockButton.setIcon(qt.QApplication.style().standardIcon( qt.QStyle.SP_ToolBarVerticalExtensionButton)) self.dockButton.setMaximumSize(buttonSize) self.dockButton.setAutoRaise(True) self.dockButton.clicked.connect(self.toggleFloating) self.dockButton.setToolTip('dock into the main window') layout.addWidget(self.dockButton, 0) self.maxButton = qt.QToolButton(self) self.maxButton.setIcon(qt.QApplication.style().standardIcon( qt.QStyle.SP_TitleBarMaxButton)) self.maxButton.setMaximumSize(buttonSize) self.maxButton.setAutoRaise(True) self.maxButton.clicked.connect(self.toggleMax) layout.addWidget(self.maxButton, 0) self.setTitleBarWidget(self.titleBar) else: self.setTitleBarWidget(None) self.parent().setTabIcons()
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.hist = Plot1D(self) self.stack = StackView(self) self.stack.setColormap({'name': 'viridis', 'autoscale': True}) self.setLayout(qt.QHBoxLayout()) splitter = qt.QSplitter() splitter.addWidget(self.hist) splitter.addWidget(self.stack) self.layout().addWidget(splitter)
def __init__(self, parent, option, index): super(QSpaceButton, self).__init__(parent, option, index) layout = Qt.QHBoxLayout(self) layout.setContentsMargins(0, 0, 0, 0) icon = icons.getQIcon('item-ndim') button = Qt.QToolButton() button.setIcon(icon) layout.addWidget(button) layout.addStretch(1) button.clicked.connect(self.__clicked)
def getEditor(self, parent, option, index): layout = qt.QHBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.setSpacing(0) layout.addWidget(qt.QLabel('0')) layout.addStretch(1) layout.addWidget(qt.QLabel('1')) editor = qt.QWidget(parent) editor.setLayout(layout) return editor