def createWidget(self, parent, client): if self.value is None: self.value = 30 * 60 self._widget = QWidget(parent) layout = QHBoxLayout() self._widget.number = QSpinBox(self._widget) self._widget.number.setValue(30) self._widget.number.setMinimum(1) self._widget.number.setMaximum(10000) self._widget.unit = QComboBox(self._widget) self._widget.unit.addItems(['sec', 'min', 'hr']) self._widget.unit.setCurrentIndex(1) layout.addWidget(self._widget.number) layout.addWidget(self._widget.unit) layout.setContentsMargins(0, 0, 0, 0) self._widget.setLayout(layout) self._widget.number.valueChanged.connect(self._updateValue) self._widget.unit.currentIndexChanged.connect(self._updateValue) self._widget.setMinimumWidth(120) if self.value is not None: if self.value % 3600 == 0: self._widget.number.setValue(self.value // 3600) self._widget.unit.setCurrentIndex(2) elif self.value % 60 == 0: self._widget.number.setValue(self.value // 60) self._widget.unit.setCurrentIndex(1) else: self._widget.number.setValue(self.value) self._widget.unit.setCurrentIndex(0) return self._widget
def __init__(self, parent, types, curvalue, client, allow_enter=False, valinfo=None): QWidget.__init__(self, parent) layout = self._layout = QGridLayout() layout.setContentsMargins(0, 0, 0, 0) self._widgets = [] if valinfo is not None: for i, info in enumerate(valinfo): layout.addWidget(QLabel(info.name), 0, i) for i, (typ, val) in enumerate(zip(types, curvalue)): widget = create(self, typ, val, client=client, allow_enter=allow_enter) self._widgets.append(widget) widget.valueModified.connect(self.valueModified) if allow_enter: widget.valueChosen.connect( lambda val: self.valueChosen.emit(self.getValue())) layout.addWidget(widget, 1, i) self.setLayout(layout)
def __init__(self, item, window, menuwindow, parent): from nicos.clients.gui.panels.utils import createWindowItem QMainWindow.__init__(self, parent) self.user_color = window.user_color self.mainwindow = window.mainwindow self.log = NicosLogger('AuxiliarySubWindow') self.log.parent = self.mainwindow.log self.panels = [] # we have to nest one step to get consistent layout spacing # around the central widget central = QWidget(self) layout = QVBoxLayout() # only keep margin at the top (below the tabs) layout.setContentsMargins(0, 6, 0, 0) if len(item) == 1: (subitem, setupSpec) = item + (None, ) else: (subitem, setupSpec) = item it = createWindowItem(subitem, window, menuwindow, self, self.log) if it: if isinstance(it, ( Panel, QSplitter, )): if isinstance(it, Panel): it.hideTitle() # if tab has its own setups overwrite panels setups if setupSpec: it.setSetups(setupSpec) it.setWidgetVisible.connect(parent.setWidgetVisibleSlot) layout.addWidget(it) central.setLayout(layout) self.setCentralWidget(central)
def __init__(self, parent, keys, types, curvalue, client, allow_enter=False): QWidget.__init__(self, parent) layout = self._layout = QFormLayout() layout.setContentsMargins(0, 0, 0, 0) self.keys = keys self._widgets = [] for (key, typ, val) in zip(keys, types, curvalue.values()): widget = create(self, typ, val, client=client, allow_enter=allow_enter) self._widgets.append(widget) widget.valueModified.connect(self.valueModified) if allow_enter: widget.valueChosen.connect( lambda val: self.valueChosen.emit(self.getValue())) layout.addRow(key, widget) self.setLayout(layout)
def __init__(self, parent, client, **settings): QMainWindow.__init__(self, parent) self.client = client self.setWindowTitle(' ') # window title is unnecessary flags = self.windowFlags() flags |= Qt.WindowStaysOnTopHint flags ^= Qt.WindowMinimizeButtonHint self.setWindowFlags(flags) self.sgroup = SettingGroup('EstopTool') with self.sgroup as settings: self.restoreGeometry(settings.value('geometry', '', QByteArray)) icon = QIcon(':/estop') icon.addFile(':/estopdown', mode=QIcon.Active) self.btn = PicButton(icon, self) widget = QWidget(self) layout = QHBoxLayout() layout.addWidget(self.btn) layout.setContentsMargins(3, 3, 3, 3) widget.setLayout(layout) self.setCentralWidget(widget) self.btn.clicked.connect(self.dostop) self.setFixedSize(self.minimumSize()) self.show()
def __init__(self, parent): QWidget.__init__(self, parent) self._arrays = None self._plotcount = 1 # self._axesrange = (1, 1) # y, x (rows, cols) self._axesrange = {'x': (0, 1, 2), 'y': (0, 1, 2)} self._fixedsize = False self._axesratio = 1.0 self._logscale = False self._rois = {} self._saveName = None layout = QHBoxLayout() self.gr = GRWidget(self) layout.addWidget(self.gr) self.setLayout(layout) self.plot = Plot(self, viewport=(0.1, 0.95, 0.1, 0.95)) self.axes = Axes(self, viewport=self.plot.viewport, xdual=True, ydual=True) self.plot.addAxes(self.axes) self.gr.addPlot(self.plot)
def __init__(self, parent, designMode=False): QWidget.__init__(self, parent) NicosWidget.__init__(self) # default values (used when no such devices are configured) self.values = { 'mth': -45, 'mtt': -90, 'sth': 30, 'stt': 60, 'ath': -45, 'att': -90, 'Lms': 1000, 'Lsa': 580, 'Lad': 400, } self.targets = self.values.copy() self.status = { 'mth': OK, 'mtt': OK, 'sth': OK, 'stt': OK, 'ath': OK, 'att': OK, } self._keymap = {} self._statuskeymap = {} self._targetkeymap = {}
def __init__(self, parent, designMode=False): self._curval = [0, 0, 0, 0] self._curstatus = OK self._opmode = 'offcentered' QWidget.__init__(self, parent) NicosWidget.__init__(self)
def __init__(self, parent, designMode=False): self._curstr = '' self._curstatus = OK self._fixed = '' QWidget.__init__(self, parent) NicosWidget.__init__(self)
def __init__(self, parent=None): QWidget.__init__(self, parent) uic.loadUi( path.join(path.dirname(path.abspath(__file__)), 'ui', 'devicewidget.ui'), self) self.parameters = {} self.pushButtonAdd.clicked.connect(self.addParameter)
def __init__(self, parent=None): QWidget.__init__(self, parent) loadUi(self, self.controlsui) for w in (self.foilLabel, self.foilBox, self.timeChannelLabel, self.timeChannelBox): w.setHidden(True) self.singleSlidesBox.setDisabled(True) self._foilsorder = list(range(self.foilsnumber))
def __init__(self, parent, client, uifile): self.client = client QWidget.__init__(self, parent) loadUi(self, uifile) loadUi(self.buttons, 'cmdlets/buttons.ui') self.buttons.upBtn.clicked.connect(self.cmdletUp) self.buttons.downBtn.clicked.connect(self.cmdletDown) self.buttons.delBtn.clicked.connect(self.cmdletRemove)
def __init__(self, parent, designMode=False): # det1pos, det1shift, det1tilt, det2pos self._curval = [0, 0, 0, 0] self._curstr = ['', '', '', ''] self._curstatus = [OK, OK, OK, OK] QWidget.__init__(self, parent) NicosWidget.__init__(self)
def __init__(self, parent, designMode=False): # coll_in, coll_out, ap_20, ap_14, ap_8, ap_4, ap_2, pol_in, pol_out self._curval = [0, 0, (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), 0, 0] self._curstr = ['', '', '', '', '', '', '', '', ''] self._curstatus = [OK, OK, OK, OK, OK, OK, OK, OK, OK] QWidget.__init__(self, parent) NicosWidget.__init__(self)
def __init__(self, parent, designMode=False): # z, x, y, small_x, small_y self._curval = [0, 0, 0, 0, 0] self._curstr = ['', '', '', '', ''] self._curstatus = [OK, OK, OK, OK, OK] QWidget.__init__(self, parent) NicosWidget.__init__(self)
def __init__(self, parent, designMode=False): # lens_in, lens_out self._curval = [0, 0] self._curstr = ['', ''] self._curstatus = [OK, OK] QWidget.__init__(self, parent) NicosWidget.__init__(self)
def __init__(self, parent, designMode=False, **kwds): self._inner = None QWidget.__init__(self, parent, **kwds) NicosWidget.__init__(self) self._layout = QHBoxLayout() self._layout.setContentsMargins(0, 0, 0, 0) self.setLayout(self._layout) if designMode: self._layout.insertWidget(0, QLabel('(Value Editor)', self))
def __init__(self, parent, designMode=False, **kwds): QWidget.__init__(self, parent, **kwds) NicosWidget.__init__(self) self._entries = [] self._vlayout = QVBoxLayout() self._vlayout.setContentsMargins(0, 0, 0, 0) self.setLayout(self._vlayout) self._add() self._designer = designMode
def __init__(self, parent=None): QWidget.__init__(self, parent) self.canvas = FigureCanvas(Figure(figsize=(20, 16))) self._static_ax = self.canvas.figure.subplots() layout = QVBoxLayout() layout.addWidget(self.canvas) self.setLayout(layout)
def __init__(self, parent, inner, annotation): QWidget.__init__(self, parent) layout = self._layout = QHBoxLayout() layout.setContentsMargins(0, 0, 0, 0) self._inner = inner self._inner.valueModified.connect(self.valueModified) self._inner.valueChosen.connect(self.valueChosen) layout.addWidget(inner) layout.addWidget(QLabel(annotation, parent)) self.setLayout(layout)
def __init__(self, parent, client, devs): self.client = client self.devs = devs QWidget.__init__(self, parent) loadUi(self, findResource('nicos_mlz/kws1/gui/devices_one.ui')) self.table.setColumnCount(len(devs)) self.table.setHorizontalHeaderLabels(devs) self._edit = None self._rows = []
class MeasTime(MeasElement): """Element for selecting measurement time in different time units.""" LABEL = 'Time' def createWidget(self, parent, client): if self.value is None: self.value = 30 * 60 self._widget = QWidget(parent) layout = QHBoxLayout() self._widget.number = QSpinBox(self._widget) self._widget.number.setValue(30) self._widget.number.setMinimum(1) self._widget.number.setMaximum(10000) self._widget.unit = QComboBox(self._widget) self._widget.unit.addItems(['sec', 'min', 'hr']) self._widget.unit.setCurrentIndex(1) layout.addWidget(self._widget.number) layout.addWidget(self._widget.unit) layout.setContentsMargins(0, 0, 0, 0) self._widget.setLayout(layout) self._widget.number.valueChanged.connect(self._updateValue) self._widget.unit.currentIndexChanged.connect(self._updateValue) self._widget.setMinimumWidth(120) if self.value is not None: if self.value % 3600 == 0: self._widget.number.setValue(self.value // 3600) self._widget.unit.setCurrentIndex(2) elif self.value % 60 == 0: self._widget.number.setValue(self.value // 60) self._widget.unit.setCurrentIndex(1) else: self._widget.number.setValue(self.value) self._widget.unit.setCurrentIndex(0) return self._widget def _updateValue(self, *args): unit = self._widget.unit.currentIndex() number = self._widget.number.value() if unit == 0: self.value = number elif unit == 1: self.value = number * 60 else: self.value = number * 3600 self.changed.emit(self.value) def getDispValue(self): # TODO: better display here if self.value % 3600 == 0: return '%d hr' % (self.value // 3600) elif self.value % 60 == 0: return '%d min' % (self.value // 60) else: return '%d sec' % self.value
def __init__(self, parent, values): QWidget.__init__(self, parent) layout = QHBoxLayout() layout.setContentsMargins(0, 0, 0, 0) self._values = {} for value in values: btn = QPushButton(str(value), self) self._values[btn] = value btn.clicked.connect(self.on_button_pressed) layout.addWidget(btn) self.setLayout(layout)
def __init__(self, parent=None, designMode=False, **kwds): QWidget.__init__(self, parent, **kwds) NicosWidget.__init__(self) self._last_mtime = None self.namelabel = QLabel(self) self.namelabel.setAlignment(Qt.AlignHCenter) self.piclabel = QLabel(self) self.piclabel.setScaledContents(True) layout = QVBoxLayout() layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self.piclabel, 1) self.setLayout(layout)
def __init__(self, parent, panel, client): self.client = client QWidget.__init__(self, parent) loadUi(self, 'panels/simresult.ui') self.simOutStack.setCurrentIndex(0) hdr = self.simRanges.header() hdr.setSectionResizeMode(QHeaderView.ResizeToContents) self.panel = panel self.simuuid = None client.simmessage.connect(self.on_client_simmessage) client.simresult.connect(self.on_client_simresult)
def __init__(self, item, window, menuwindow, topwindow, parent=None): from nicos.clients.gui.panels.utils import createWindowItem QWidget.__init__(self, parent) self.log = NicosLogger(self.logger_name) self.log.parent = topwindow.log layout = self.layout_type(parent) SetupDepPanelMixin.__init__(self, window.client, item.options) for subitem in item.children: sub = createWindowItem(subitem, window, menuwindow, topwindow, self.log) if sub: layout.addWidget(sub) self.setLayout(layout)
def __init__(self, name='unknown', parent=None, **kwds): QWidget.__init__(self, parent) loadUi(self, findResource('nicos_mlz/reseda/gui/mieze_display_foil.ui')) # set name self.name = name self.groupBox.setTitle(name) # insert plot widget + store reference self.plotwidget = MiniPlot(self) self.plotwidget.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding) self.verticalLayout.insertWidget(0, self.plotwidget) self.do_update([(0, 0, 0, 0), (0, 0, 0, 0), [0] * 16] * 2)
def __init__(self, parent, designMode=False): self.ncurves = 0 self.ctimers = {} self.keyindices = {} self.plotcurves = {} self.series = {} self.legendobj = None # X label settings, default values for default window of 3600s self._showdate = False self._showsecs = False QWidget.__init__(self, parent) NicosWidget.__init__(self)
def __init__(self, title, xlabel, ylabel, name='unknown', parent=None, **kwds): QWidget.__init__(self, parent) self.name = name parent.setLayout(QVBoxLayout()) self.plot = MiniPlot(xlabel, ylabel, self, color1=COLOR_BLACK, color2=COLOR_RED) titleLabel = QLabel(title) titleLabel.setAlignment(Qt.AlignCenter) titleLabel.setStyleSheet('QLabel {font-weight: 600}') parent.layout().insertWidget(0, titleLabel) self.plot.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding) parent.layout().insertWidget(1, self.plot)
def __init__(self, setup, availablesetups, parent=None): QWidget.__init__(self, parent) uic.loadUi(path.join(path.dirname(path.abspath(__file__)), 'ui', 'setupwidget.ui'), self) # keys taken from nicos_demo/skeleton/setups/system.py self.sysconfigKeys = ['cache', 'instrument', 'experiment', 'datasinks', 'notifiers'] self.lineEditDescription.textEdited.connect(self.editedSetup.emit) self.treeWidgetSysconfig.editedSetup.connect(self.editedSetup.emit) self.comboBoxGroup.activated.connect(self.editedSetup.emit) self.lineEditDescription.setText(setup.description) self.comboBoxGroup.setCurrentIndex( self.comboBoxGroup.findText(setup.group)) for includeItem in setup.includes: self.listWidgetIncludes.addItem(includeItem) for excludeItem in setup.excludes: self.listWidgetExcludes.addItem(excludeItem) for moduleItem in setup.modules: self.listWidgetModules.addItem(moduleItem) topLevelItems = [] for key in self.sysconfigKeys: if key in setup.sysconfig: topLevelItems.append(QTreeWidgetItem([key])) self.treeWidgetSysconfig.addTopLevelItems(topLevelItems) for item in topLevelItems: if isinstance(setup.sysconfig[item.text(0)], list): for listItem in setup.sysconfig[item.text(0)]: item.addChild(QTreeWidgetItem([listItem])) else: item.addChild(QTreeWidgetItem( [setup.sysconfig[item.text(0)]])) if self.treeWidgetSysconfig.topLevelItemCount() == len( self.sysconfigKeys): # can't add any unknown keys self.pushButtonAddSysconfig.setEnabled(False) else: self.pushButtonAddSysconfig.setEnabled(True) self.textEditStartupCode.blockSignals(True) self.textEditStartupCode.setPlainText(setup.startupcode[1:-1]) self.textEditStartupCode.blockSignals(False) self.availablesetups = availablesetups