def _setup_ui(self): vbox = QtGui.QVBoxLayout(self) self.setLayout(vbox) grid = QtGui.QGridLayout() self.form = MAXForm(withButtons=False) grid.addWidget(self.form, 0, 0, 2, 1) # rescale taurus form methode self.form.scrollArea.sizeHint = self.scaleSize self.status_label = StatusArea() grid.addWidget(self.status_label, 0, 1, 1, 1) commandbox = QtGui.QVBoxLayout(self) self.start_button = TaurusCommandButton(command="StartCycle") self.start_button.setUseParentModel(True) self.stop_button = TaurusCommandButton(command="StopCycle") self.stop_button.setUseParentModel(True) commandbox.addWidget(self.start_button) commandbox.addWidget(self.stop_button) grid.addLayout(commandbox, 1, 1, 1, 1) vbox.addLayout(grid) self.trend = TaurusTrend() vbox.addWidget(self.trend, stretch=1) self.trend_trigger.connect(self.set_trend_paused) self.cyclingState = None
def hack_circuitpanel(widget, ps_model): """ add trigger buttons from PS to the circuit panel (BinpPowerSupplyPanel case) """ circuit = widget.circuit_widget h_box = QtGui.QHBoxLayout(circuit) circuit.enable_trigger_button = TaurusCommandButton( command="EnableTrigger") circuit.disable_trigger_button = TaurusCommandButton( command="DisableTrigger") circuit.enable_trigger_button.setModel(ps_model) circuit.disable_trigger_button.setModel(ps_model) h_box.addWidget(circuit.enable_trigger_button) h_box.addWidget(circuit.disable_trigger_button) circuit.vbox.insertLayout(1, h_box)
def _setup_ui(self): hbox = QtGui.QHBoxLayout(self) self.setLayout(hbox) form_vbox = QtGui.QVBoxLayout(self) # devicename label hbox2 = QtGui.QVBoxLayout(self) self.device_and_state = DevnameAndState(self) hbox2.addWidget(self.device_and_state, stretch=2) # commands commandbox = QtGui.QHBoxLayout(self) self.start_button = TaurusCommandButton(command="Start") self.start_button.setUseParentModel(True) self.stop_button = TaurusCommandButton(command="Stop") self.stop_button.setUseParentModel(True) self.init_button = TaurusCommandButton(command="Init") self.init_button.setUseParentModel(True) self.on_button = TaurusCommandButton(command="On") self.on_button.setUseParentModel(True) self.off_button = TaurusCommandButton(command="Off") self.off_button.setUseParentModel(True) self.enable_trigger_button = TaurusCommandButton( command="EnableTrigger") self.enable_trigger_button.setUseParentModel(True) self.disable_trigger_button = TaurusCommandButton( command="DisableTrigger") self.disable_trigger_button.setUseParentModel(True) self.reset_button = TaurusCommandButton(command="Reset") self.reset_button.setUseParentModel(True) commandbox.addWidget(self.start_button) commandbox.addWidget(self.stop_button) commandbox.addWidget(self.init_button) commandbox.addWidget(self.on_button) commandbox.addWidget(self.off_button) commandbox.addWidget(self.enable_trigger_button) commandbox.addWidget(self.disable_trigger_button) commandbox.addWidget(self.reset_button) hbox2.addLayout(commandbox, stretch=1) form_vbox.addLayout(hbox2) # attributes self.form = MAXForm(withButtons=False) form_vbox.addLayout(commandbox) form_vbox.addWidget(self.form, stretch=1) self.status_area = StatusArea() form_vbox.addWidget(self.status_area) hbox.addLayout(form_vbox) # value bar self.valuebar = MAXValueBar(self) slider_vbox = QtGui.QVBoxLayout(self) slider_vbox.setContentsMargins(10, 10, 10, 10) hbox.addLayout(slider_vbox) self.current_label = TaurusLabel() self.current_label.setAlignment(QtCore.Qt.AlignCenter) slider_vbox.addWidget(self.valuebar, 1) slider_vbox.addWidget(self.current_label)
def test_timeout(qtbot, taurus_test_ds): """Check that the timeout property works""" w = TaurusCommandButton(command='Sleep') qtbot.addWidget(w) try: w.setModel(taurus_test_ds) # set the parameter for the sleep command to 0.2 seconds w.setParameters([.2]) # Create a callback to check the result of the execution def _check_result(res): return res == .2 # Check that the button emits commandExecuted when timeout > exec time w.setTimeout(10) assert w.getTimeout() == 10 with qtbot.waitSignal(w.commandExecuted, check_params_cb=_check_result): qtbot.mouseClick(w, Qt.Qt.LeftButton) # Check that, if timeout < exec time, commandExecuted is NOT emited # and CommunicationFailed is raised w.setTimeout(.1) assert w.getTimeout() == .1 with pytest.raises(CommunicationFailed): with qtbot.assertNotEmitted(w.commandExecuted): # call _onClicked instead of emulating a click to bypass # the @ProtectTaurusMessageBox protection of onClicked() w._onClicked() finally: # just in case this helps avoiding problems at exit w.setModel(None)
def populateButtons(self): """ Create taurus commandbuttons for everything in modelcommand """ for modelcommand in self._modelcommands: button = TaurusCommandButton(self.frame) button.setCommand(modelcommand['command']) if 'model' in modelcommand: button.setModel(modelcommand['model']) else: button.setUseParentModel(True) if 'customtext' in modelcommand: button.setCustomText(modelcommand['customtext']) if 'dangermessage' in modelcommand: button.setDangerMessage(modelcommand['dangermessage']) if 'parameters' in modelcommand: button.setParameters(modelcommand['parameters']) if 'timeout' in modelcommand: button.setTimeout(modelcommand['timeout']) self.connect(button, Qt.SIGNAL('commandExecuted'), self.onCommandExectued) # Make button expand vertically button.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.frame.layout().addWidget(button) self._buttons.append(button)
def __init__(self, *args): TaurusWidget.__init__(self, *args) self.setLayout(QtGui.QHBoxLayout()) self.layout().setMargin(0) self.moveInButton = TaurusCommandButton(self) self.moveInButton.setUseParentModel(True) self.moveInButton.setCommand('MoveIn') self.moveInButton.setCustomText('Move In') self.moveOutButton = TaurusCommandButton(self) self.moveOutButton.setUseParentModel(True) self.moveOutButton.setCommand('MoveOut') self.moveOutButton.setCustomText('Move Out') self.layout().addWidget(self.moveInButton) self.layout().addWidget(self.moveOutButton)
def _updateCommandWidgets(self, *args): ''' Inserts command buttons and parameter widgets in the layout, according to the commands from the model ''' dev = self.getModelObj() if dev is None: self._clearFrame() return try: commands = sorted(dev.command_list_query(), key=self._sortKey) except Exception as e: self.warning('Problem querying commands from %s. Reason: %s', dev, e) self._clearFrame() return for f in self.getViewFilters(): commands = list(filter(f, commands)) self._clearFrame() layout = self._frame.layout() model = self.getFullModelName() for row, c in enumerate(commands): self.debug('Adding button for command %s' % c.cmd_name) button = TaurusCommandButton(command=c.cmd_name, text=c.cmd_name) layout.addWidget(button, row, 0) button.setModel(model) self._cmdWidgets.append(button) button.commandExecuted.connect(self._onCommandExecuted) import taurus.core.tango.util.tango_taurus as tango_taurus in_type = tango_taurus.FROM_TANGO_TO_TAURUS_TYPE[c.in_type] if in_type is not None: self.debug('Adding arguments for command %s' % c.cmd_name) pwidget = ParameterCB() if c.cmd_name.lower() in self._defaultParameters: for par in self._defaultParameters.get(c.cmd_name.lower(), []): pwidget.addItem(par) #pwidget.setEditable( (self._defaultParameters[c.cmd_name.lower()] or [''])[0] == '' ) if (self._defaultParameters[c.cmd_name.lower()] or [''])[0] == '': pwidget.setEditable(True) else: pwidget.setEditable(False) button.setParameters(self._defaultParameters[ c.cmd_name.lower()][0]) pwidget.editTextChanged.connect(button.setParameters) pwidget.currentIndexChanged['QString'].connect(button.setParameters) pwidget.activated.connect(button.setFocus) button.commandExecuted.connect(pwidget.rememberCurrentText) layout.addWidget(pwidget, row, 1) self._paramWidgets.append(pwidget)
def _updateCommandWidgets(self, *args): ''' Inserts command buttons and parameter widgets in the layout, according to the commands from the model ''' #self.debug('In TaurusCommandsForm._updateCommandWidgets())') dev = self.getModelObj() if dev is None or dev.state != TaurusDevState.Ready: self.debug('Cannot connect to device') self._clearFrame() return commands = sorted(dev.command_list_query(), key=self._sortKey) for f in self.getViewFilters(): commands = filter(f, commands) self._clearFrame() layout = self._frame.layout() for row, c in enumerate(commands): self.debug('Adding button for command %s' % c.cmd_name) button = TaurusCommandButton(command=c.cmd_name, text=c.cmd_name) layout.addWidget(button, row, 0) button.setUseParentModel(True) self._cmdWidgets.append(button) self.connect(button, Qt.SIGNAL('commandExecuted'), self._onCommandExecuted) if c.in_type != PyTango.CmdArgType.DevVoid: self.debug('Adding arguments for command %s' % c.cmd_name) pwidget = ParameterCB() if c.cmd_name.lower() in self._defaultParameters: for par in self._defaultParameters.get( c.cmd_name.lower(), []): pwidget.addItem(par) #pwidget.setEditable( (self._defaultParameters[c.cmd_name.lower()] or [''])[0] == '' ) if (self._defaultParameters[c.cmd_name.lower()] or [''])[0] == '': pwidget.setEditable(True) else: pwidget.setEditable(False) button.setParameters( self._defaultParameters[c.cmd_name.lower()][0]) self.connect(pwidget, Qt.SIGNAL('editTextChanged (const QString&)'), button.setParameters) self.connect(pwidget, Qt.SIGNAL('currentIndexChanged (const QString&)'), button.setParameters) self.connect(pwidget, Qt.SIGNAL('activated (int)'), button.setFocus) self.connect(button, Qt.SIGNAL('commandExecuted'), pwidget.rememberCurrentText) layout.addWidget(pwidget, row, 1) self._paramWidgets.append(pwidget)
def updateTable(self): global checkList checkList = [] # filtre venant du choix du combobox # Recherche dans le dictionnaire if filterTypes.has_key(str(self.comboBoxType.currentText())): value_filterTypes = filterTypes.get( str(self.comboBoxType.currentText())) else: value_filterTypes = 'All' if filterZones.has_key(str(self.comboBoxZone.currentText())): value_filterZones = filterZones.get( str(self.comboBoxZone.currentText())) else: value_filterZones = 'All' # nettoyage de la zone a ecrire self.clearLayout(self.gridLayout) # Header du tableau a ecrire après chaque .clear #self.tableWidget.setHorizontalHeaderLabels(['Names','Current','Voltage']) # If "All" is used, no filter is applied # cette methode n'existe pas : il faut trouver un equivalent # self.tableWidget.insertItems(0,[text for text in items if text_filter in text + "All"]) k = -1 #self.gridLayout.addWidget(self.styledPanel(),k,0,1,8) for device in DeviceList: if value_filterTypes in device + "All": if value_filterZones in device + "All": # test line k += 1 self.gridLayout.addWidget(self.Hline(), k, 0, 1, 8) k += 1 self.gridLayout.setRowMinimumHeight(k, 40) # Bouton ouverture device self.buttonDevice = QtGui.QPushButton() self.buttonDevice.setText(device) self.buttonDevice.clicked.connect(AfficheDevice(device)) self.gridLayout.addWidget(self.buttonDevice, k, 0) # Afficheur courant self.afficheurCurrent = TaurusLabel() self.afficheurCurrent.setModel(device + '/double_scalar') self.gridLayout.addWidget(self.afficheurCurrent, k, 1) # Afficheur tension self.afficheurVoltage = TaurusLabel() self.afficheurVoltage.setModel(device + '/float_scalar') self.gridLayout.addWidget(self.afficheurVoltage, k, 2) # Lecture consigne courant self.afficheurCurrentSP = TaurusLabel() self.afficheurCurrentSP.setModel(device + '/ampli') self.gridLayout.addWidget(self.afficheurCurrentSP, k, 3) # Ecriture consigne courant self.writeCurrentSP = TaurusWheelEdit() self.writeCurrentSP.setModel(device + '/ampli') self.gridLayout.addWidget(self.writeCurrentSP, k, 4) # Afficheur etat self.afficheurState = TaurusLabel() self.afficheurState.setModel(device + '/State') self.gridLayout.addWidget(self.afficheurState, k, 5) # CheckBox de selection self.buttonSelect = QtGui.QCheckBox(device, self) self.gridLayout.addWidget(self.buttonSelect, k, 6) checkList.append(self.buttonSelect) # Bouton commande Taurus self.commandButtonSwitch = TaurusCommandButton( command='SwitchStates', text='Switch State') self.commandButtonSwitch.setModel(device) self.gridLayout.addWidget(self.commandButtonSwitch, k, 7) self.scrollArea.setWidget(self.contenu)
def setupUi(self, Form): Form.setObjectName(_fromUtf8("Form")) Form.resize(501, 414) self.gridLayout_2 = QtGui.QGridLayout(Form) self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2")) self.groupBox = QtGui.QGroupBox(Form) self.groupBox.setObjectName(_fromUtf8("groupBox")) self.gridLayout = QtGui.QGridLayout(self.groupBox) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.taurusLabel = TaurusLabel(self.groupBox) self.taurusLabel.setObjectName(_fromUtf8("taurusLabel")) self.gridLayout.addWidget(self.taurusLabel, 0, 0, 1, 1) self.taurusLabel_2 = TaurusLabel(self.groupBox) self.taurusLabel_2.setObjectName(_fromUtf8("taurusLabel_2")) self.gridLayout.addWidget(self.taurusLabel_2, 0, 2, 1, 1) self.taurusLed_2 = TaurusLed(self.groupBox) self.taurusLed_2.setObjectName(_fromUtf8("taurusLed_2")) self.gridLayout.addWidget(self.taurusLed_2, 0, 3, 1, 1) self.taurusLabel_3 = TaurusLabel(self.groupBox) self.taurusLabel_3.setObjectName(_fromUtf8("taurusLabel_3")) self.gridLayout.addWidget(self.taurusLabel_3, 1, 0, 1, 1) self.taurusLabel_4 = TaurusLabel(self.groupBox) self.taurusLabel_4.setObjectName(_fromUtf8("taurusLabel_4")) self.gridLayout.addWidget(self.taurusLabel_4, 1, 2, 1, 1) self.taurusLed_3 = TaurusLed(self.groupBox) self.taurusLed_3.setObjectName(_fromUtf8("taurusLed_3")) self.gridLayout.addWidget(self.taurusLed_3, 1, 3, 1, 1) self.taurusLabel_5 = TaurusLabel(self.groupBox) self.taurusLabel_5.setObjectName(_fromUtf8("taurusLabel_5")) self.gridLayout.addWidget(self.taurusLabel_5, 2, 0, 1, 1) self.taurusLabel_6 = TaurusLabel(self.groupBox) self.taurusLabel_6.setObjectName(_fromUtf8("taurusLabel_6")) self.gridLayout.addWidget(self.taurusLabel_6, 2, 2, 1, 1) self.taurusLed_4 = TaurusLed(self.groupBox) self.taurusLed_4.setObjectName(_fromUtf8("taurusLed_4")) self.gridLayout.addWidget(self.taurusLed_4, 2, 3, 1, 1) self.taurusLabel_7 = TaurusLabel(self.groupBox) self.taurusLabel_7.setObjectName(_fromUtf8("taurusLabel_7")) self.gridLayout.addWidget(self.taurusLabel_7, 3, 0, 1, 1) self.taurusLabel_8 = TaurusLabel(self.groupBox) self.taurusLabel_8.setObjectName(_fromUtf8("taurusLabel_8")) self.gridLayout.addWidget(self.taurusLabel_8, 3, 2, 1, 1) self.taurusLed_5 = TaurusLed(self.groupBox) self.taurusLed_5.setObjectName(_fromUtf8("taurusLed_5")) self.gridLayout.addWidget(self.taurusLed_5, 3, 3, 1, 1) self.taurusLabel_9 = TaurusLabel(self.groupBox) self.taurusLabel_9.setObjectName(_fromUtf8("taurusLabel_9")) self.gridLayout.addWidget(self.taurusLabel_9, 4, 0, 1, 1) self.taurusLabel_10 = TaurusLabel(self.groupBox) self.taurusLabel_10.setObjectName(_fromUtf8("taurusLabel_10")) self.gridLayout.addWidget(self.taurusLabel_10, 4, 2, 1, 1) self.taurusLed_6 = TaurusLed(self.groupBox) self.taurusLed_6.setObjectName(_fromUtf8("taurusLed_6")) self.gridLayout.addWidget(self.taurusLed_6, 4, 3, 1, 1) self.taurusLabel_11 = TaurusLabel(self.groupBox) self.taurusLabel_11.setObjectName(_fromUtf8("taurusLabel_11")) self.gridLayout.addWidget(self.taurusLabel_11, 5, 0, 1, 1) self.taurusLabel_12 = TaurusLabel(self.groupBox) self.taurusLabel_12.setObjectName(_fromUtf8("taurusLabel_12")) self.gridLayout.addWidget(self.taurusLabel_12, 5, 2, 1, 1) self.taurusLed_7 = TaurusLed(self.groupBox) self.taurusLed_7.setObjectName(_fromUtf8("taurusLed_7")) self.gridLayout.addWidget(self.taurusLed_7, 5, 3, 1, 1) self.gridLayout_2.addWidget(self.groupBox, 0, 2, 1, 1) self.groupBox_2 = QtGui.QGroupBox(Form) self.groupBox_2.setObjectName(_fromUtf8("groupBox_2")) self.gridLayout_3 = QtGui.QGridLayout(self.groupBox_2) self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3")) self.taurusLabel_13 = TaurusLabel(self.groupBox_2) self.taurusLabel_13.setObjectName(_fromUtf8("taurusLabel_13")) self.gridLayout_3.addWidget(self.taurusLabel_13, 0, 0, 1, 1) self.taurusLabel_14 = TaurusLabel(self.groupBox_2) self.taurusLabel_14.setObjectName(_fromUtf8("taurusLabel_14")) self.gridLayout_3.addWidget(self.taurusLabel_14, 0, 2, 1, 1) self.taurusLed_8 = TaurusLed(self.groupBox_2) self.taurusLed_8.setObjectName(_fromUtf8("taurusLed_8")) self.gridLayout_3.addWidget(self.taurusLed_8, 0, 3, 1, 1) self.taurusLabel_15 = TaurusLabel(self.groupBox_2) self.taurusLabel_15.setObjectName(_fromUtf8("taurusLabel_15")) self.gridLayout_3.addWidget(self.taurusLabel_15, 1, 0, 1, 1) self.taurusLabel_16 = TaurusLabel(self.groupBox_2) self.taurusLabel_16.setObjectName(_fromUtf8("taurusLabel_16")) self.gridLayout_3.addWidget(self.taurusLabel_16, 1, 2, 1, 1) self.taurusLed_9 = TaurusLed(self.groupBox_2) self.taurusLed_9.setObjectName(_fromUtf8("taurusLed_9")) self.gridLayout_3.addWidget(self.taurusLed_9, 1, 3, 1, 1) self.taurusLabel_17 = TaurusLabel(self.groupBox_2) self.taurusLabel_17.setObjectName(_fromUtf8("taurusLabel_17")) self.gridLayout_3.addWidget(self.taurusLabel_17, 2, 0, 1, 1) self.taurusLabel_18 = TaurusLabel(self.groupBox_2) self.taurusLabel_18.setObjectName(_fromUtf8("taurusLabel_18")) self.gridLayout_3.addWidget(self.taurusLabel_18, 2, 2, 1, 1) self.taurusLed_10 = TaurusLed(self.groupBox_2) self.taurusLed_10.setObjectName(_fromUtf8("taurusLed_10")) self.gridLayout_3.addWidget(self.taurusLed_10, 2, 3, 1, 1) self.taurusLabel_19 = TaurusLabel(self.groupBox_2) self.taurusLabel_19.setObjectName(_fromUtf8("taurusLabel_19")) self.gridLayout_3.addWidget(self.taurusLabel_19, 3, 0, 1, 1) self.taurusLabel_20 = TaurusLabel(self.groupBox_2) self.taurusLabel_20.setObjectName(_fromUtf8("taurusLabel_20")) self.gridLayout_3.addWidget(self.taurusLabel_20, 3, 2, 1, 1) self.taurusLed_11 = TaurusLed(self.groupBox_2) self.taurusLed_11.setObjectName(_fromUtf8("taurusLed_11")) self.gridLayout_3.addWidget(self.taurusLed_11, 3, 3, 1, 1) self.taurusLabel_21 = TaurusLabel(self.groupBox_2) self.taurusLabel_21.setObjectName(_fromUtf8("taurusLabel_21")) self.gridLayout_3.addWidget(self.taurusLabel_21, 4, 0, 1, 1) self.taurusLabel_22 = TaurusLabel(self.groupBox_2) self.taurusLabel_22.setObjectName(_fromUtf8("taurusLabel_22")) self.gridLayout_3.addWidget(self.taurusLabel_22, 4, 2, 1, 1) self.taurusLed_12 = TaurusLed(self.groupBox_2) self.taurusLed_12.setObjectName(_fromUtf8("taurusLed_12")) self.gridLayout_3.addWidget(self.taurusLed_12, 4, 3, 1, 1) self.taurusLabel_23 = TaurusLabel(self.groupBox_2) self.taurusLabel_23.setObjectName(_fromUtf8("taurusLabel_23")) self.gridLayout_3.addWidget(self.taurusLabel_23, 5, 0, 1, 1) self.taurusLabel_24 = TaurusLabel(self.groupBox_2) self.taurusLabel_24.setObjectName(_fromUtf8("taurusLabel_24")) self.gridLayout_3.addWidget(self.taurusLabel_24, 5, 2, 1, 1) self.taurusLed_13 = TaurusLed(self.groupBox_2) self.taurusLed_13.setObjectName(_fromUtf8("taurusLed_13")) self.gridLayout_3.addWidget(self.taurusLed_13, 5, 3, 1, 1) self.gridLayout_2.addWidget(self.groupBox_2, 0, 3, 1, 1) self.groupBox_4 = QtGui.QGroupBox(Form) self.groupBox_4.setObjectName(_fromUtf8("groupBox_4")) self.gridLayout_5 = QtGui.QGridLayout(self.groupBox_4) self.gridLayout_5.setObjectName(_fromUtf8("gridLayout_5")) self.taurusLabel_26 = TaurusLabel(self.groupBox_4) self.taurusLabel_26.setObjectName(_fromUtf8("taurusLabel_26")) self.gridLayout_5.addWidget(self.taurusLabel_26, 0, 0, 1, 3) self.taurusLed_14 = TaurusLed(self.groupBox_4) self.taurusLed_14.setObjectName(_fromUtf8("taurusLed_14")) self.gridLayout_5.addWidget(self.taurusLed_14, 1, 0, 1, 1) self.taurusLabel_29 = TaurusLabel(self.groupBox_4) self.taurusLabel_29.setObjectName(_fromUtf8("taurusLabel_29")) self.gridLayout_5.addWidget(self.taurusLabel_29, 2, 0, 1, 1) self.taurusLabel_30 = TaurusLabel(self.groupBox_4) self.taurusLabel_30.setObjectName(_fromUtf8("taurusLabel_30")) self.gridLayout_5.addWidget(self.taurusLabel_30, 2, 1, 1, 1) self.taurusValueLineEdit_2 = TaurusValueLineEdit(self.groupBox_4) self.taurusValueLineEdit_2.setObjectName( _fromUtf8("taurusValueLineEdit_2")) self.gridLayout_5.addWidget(self.taurusValueLineEdit_2, 2, 2, 1, 1) self.taurusLabel_33 = TaurusLabel(self.groupBox_4) self.taurusLabel_33.setObjectName(_fromUtf8("taurusLabel_33")) self.gridLayout_5.addWidget(self.taurusLabel_33, 3, 0, 1, 1) self.taurusLabel_34 = TaurusLabel(self.groupBox_4) self.taurusLabel_34.setObjectName(_fromUtf8("taurusLabel_34")) self.gridLayout_5.addWidget(self.taurusLabel_34, 3, 1, 1, 1) self.taurusValueLineEdit_4 = TaurusValueLineEdit(self.groupBox_4) self.taurusValueLineEdit_4.setObjectName( _fromUtf8("taurusValueLineEdit_4")) self.gridLayout_5.addWidget(self.taurusValueLineEdit_4, 3, 2, 1, 1) self.taurusLabel_37 = TaurusLabel(self.groupBox_4) self.taurusLabel_37.setObjectName(_fromUtf8("taurusLabel_37")) self.gridLayout_5.addWidget(self.taurusLabel_37, 4, 0, 1, 1) self.taurusLabel_38 = TaurusLabel(self.groupBox_4) self.taurusLabel_38.setObjectName(_fromUtf8("taurusLabel_38")) self.gridLayout_5.addWidget(self.taurusLabel_38, 4, 1, 1, 1) self.taurusValueLineEdit_6 = TaurusValueLineEdit(self.groupBox_4) self.taurusValueLineEdit_6.setObjectName( _fromUtf8("taurusValueLineEdit_6")) self.gridLayout_5.addWidget(self.taurusValueLineEdit_6, 4, 2, 1, 1) self.horizontalLayout_2 = QtGui.QHBoxLayout() self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2")) self.taurusCommandButton_2 = TaurusCommandButton(self.groupBox_4) self.taurusCommandButton_2.setObjectName( _fromUtf8("taurusCommandButton_2")) self.horizontalLayout_2.addWidget(self.taurusCommandButton_2) self.cfgMg2 = QtGui.QToolButton(self.groupBox_4) self.cfgMg2.setObjectName(_fromUtf8("cfgMg2")) self.horizontalLayout_2.addWidget(self.cfgMg2) self.horizontalLayout_2.setStretch(0, 1) self.gridLayout_5.addLayout(self.horizontalLayout_2, 1, 1, 1, 2) self.gridLayout_2.addWidget(self.groupBox_4, 1, 3, 1, 1) self.groupBox_3 = QtGui.QGroupBox(Form) self.groupBox_3.setObjectName(_fromUtf8("groupBox_3")) self.gridLayout_4 = QtGui.QGridLayout(self.groupBox_3) self.gridLayout_4.setObjectName(_fromUtf8("gridLayout_4")) self.taurusLabel_25 = TaurusLabel(self.groupBox_3) self.taurusLabel_25.setObjectName(_fromUtf8("taurusLabel_25")) self.gridLayout_4.addWidget(self.taurusLabel_25, 0, 0, 1, 3) self.taurusLabel_27 = TaurusLabel(self.groupBox_3) self.taurusLabel_27.setObjectName(_fromUtf8("taurusLabel_27")) self.gridLayout_4.addWidget(self.taurusLabel_27, 2, 1, 1, 1) self.taurusLabel_28 = TaurusLabel(self.groupBox_3) self.taurusLabel_28.setObjectName(_fromUtf8("taurusLabel_28")) self.gridLayout_4.addWidget(self.taurusLabel_28, 2, 0, 1, 1) self.taurusValueLineEdit = TaurusValueLineEdit(self.groupBox_3) self.taurusValueLineEdit.setObjectName( _fromUtf8("taurusValueLineEdit")) self.gridLayout_4.addWidget(self.taurusValueLineEdit, 2, 2, 1, 1) self.taurusLed = TaurusLed(self.groupBox_3) self.taurusLed.setObjectName(_fromUtf8("taurusLed")) self.gridLayout_4.addWidget(self.taurusLed, 1, 0, 1, 1) self.taurusLabel_31 = TaurusLabel(self.groupBox_3) self.taurusLabel_31.setObjectName(_fromUtf8("taurusLabel_31")) self.gridLayout_4.addWidget(self.taurusLabel_31, 3, 0, 1, 1) self.taurusLabel_32 = TaurusLabel(self.groupBox_3) self.taurusLabel_32.setObjectName(_fromUtf8("taurusLabel_32")) self.gridLayout_4.addWidget(self.taurusLabel_32, 3, 1, 1, 1) self.taurusValueLineEdit_3 = TaurusValueLineEdit(self.groupBox_3) self.taurusValueLineEdit_3.setObjectName( _fromUtf8("taurusValueLineEdit_3")) self.gridLayout_4.addWidget(self.taurusValueLineEdit_3, 3, 2, 1, 1) self.taurusLabel_35 = TaurusLabel(self.groupBox_3) self.taurusLabel_35.setObjectName(_fromUtf8("taurusLabel_35")) self.gridLayout_4.addWidget(self.taurusLabel_35, 4, 0, 1, 1) self.taurusLabel_36 = TaurusLabel(self.groupBox_3) self.taurusLabel_36.setObjectName(_fromUtf8("taurusLabel_36")) self.gridLayout_4.addWidget(self.taurusLabel_36, 4, 1, 1, 1) self.taurusValueLineEdit_5 = TaurusValueLineEdit(self.groupBox_3) self.taurusValueLineEdit_5.setObjectName( _fromUtf8("taurusValueLineEdit_5")) self.gridLayout_4.addWidget(self.taurusValueLineEdit_5, 4, 2, 1, 1) self.horizontalLayout_3 = QtGui.QHBoxLayout() self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3")) self.taurusCommandButton = TaurusCommandButton(self.groupBox_3) self.taurusCommandButton.setObjectName( _fromUtf8("taurusCommandButton")) self.horizontalLayout_3.addWidget(self.taurusCommandButton) self.cfgMg1 = QtGui.QToolButton(self.groupBox_3) self.cfgMg1.setObjectName(_fromUtf8("cfgMg1")) self.horizontalLayout_3.addWidget(self.cfgMg1) self.gridLayout_4.addLayout(self.horizontalLayout_3, 1, 1, 1, 2) self.gridLayout_2.addWidget(self.groupBox_3, 1, 2, 1, 1) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form)
mb = MacroButton() mb.setModel(door_name) w.layout().addWidget(mb, 2, 0, 2, 7) w.layout().addWidget(Qt.QLabel('Result:'), 4, 0) result_label = Qt.QLabel() w.layout().addWidget(result_label, 4, 1, 1, 5) show_progress = Qt.QCheckBox('Progress') show_progress.setChecked(True) w.layout().addWidget(show_progress, 5, 0) mb_abort = TaurusCommandButton(command='StopMacro', icon=':/actions/media_playback_stop.svg') mb_abort.setModel(door_name) w.layout().addWidget(mb_abort, 5, 1) # Change macro name Qt.QObject.connect(macro_name, Qt.SIGNAL('textChanged(QString)'), mb.setMacroName) Qt.QObject.connect(macro_name, Qt.SIGNAL('textChanged(QString)'), mb.setButtonText) # connect the argument editors signals = [(e, 'textChanged(QString)') for e in _argEditors] mb.connectArgEditors(signals) def update_result(result):
def create_layout(self, macro_name): p_names, d_values = self.getMacroInfo(macro_name) # Create TOP layout self.w_arg = Qt.QWidget() self.w_arg.setLayout(Qt.QGridLayout()) col = 0 self.w_arg.layout().addWidget(Qt.QLabel('macro name'), 0, col) self.w_macro_name = Qt.QLineEdit() self.w_arg.layout().addWidget(self.w_macro_name, 1, col) _argEditors = [] for name in p_names: col += 1 self.w_arg.layout().addWidget(Qt.QLabel(name), 0, col) self.argEdit = Qt.QLineEdit() self.w_arg.layout().addWidget(self.argEdit, 1, col) _argEditors.append(self.argEdit) for e, v in zip(_argEditors, d_values): e.setText(v) # Create bottom layout self.mb = MacroButton() self.mb.setModel(door_name) self.w_bottom = Qt.QWidget() self.w_bottom.setLayout(Qt.QGridLayout()) self.w_bottom.layout().addWidget(self.mb, 0, 0, 2, 7) self.w_bottom.layout().addWidget(Qt.QLabel('Result:'), 2, 0) self.result_label = Qt.QLabel() self.w_bottom.layout().addWidget(self.result_label, 2, 1, 1, 5) self.show_progress = Qt.QCheckBox('Progress') self.show_progress.setChecked(True) self.w_bottom.layout().addWidget(self.show_progress, 3, 0) mb_abort = TaurusCommandButton(command='StopMacro', icon=':/actions/media_playback_stop.svg') mb_abort.setModel(door_name) self.w_bottom.layout().addWidget(mb_abort, 3, 1) # Toggle progressbar Qt.QObject.connect(self.show_progress, Qt.SIGNAL( 'stateChanged(int)'), self.toggle_progress) # connect the argument editors signals = [(e, 'textChanged(QString)') for e in _argEditors] self.mb.connectArgEditors(signals) self.setLayout(Qt.QVBoxLayout()) self.layout().addWidget(self.w_arg) self.layout().addWidget(self.w_bottom) # Update possible macro result Qt.QObject.connect(self.mb, Qt.SIGNAL( 'resultUpdated'), self.update_result) Qt.QObject.connect(self.w_macro_name, Qt.SIGNAL( 'textEdited(QString)'), self.update_macro_name) Qt.QObject.connect(self.w_macro_name, Qt.SIGNAL( 'editingFinished()'), self.update_layout) Qt.QObject.connect(self.w_macro_name, Qt.SIGNAL( 'textChanged(QString)'), self.mb.setMacroName) Qt.QObject.connect(self.w_macro_name, Qt.SIGNAL( 'textChanged(QString)'), self.mb.setButtonText) # Since everything is now connected, the parameters will be updated self.w_macro_name.setText(macro_name)
def create_layout(self, macro_name): p_names, d_values = self.getMacroInfo(macro_name) # Create TOP layout self.w_arg = Qt.QWidget() self.w_arg.setLayout(Qt.QGridLayout()) col = 0 self.w_arg.layout().addWidget(Qt.QLabel('macro name'), 0, col) self.w_macro_name = Qt.QLineEdit() self.w_arg.layout().addWidget(self.w_macro_name, 1, col) _argEditors = [] for name in p_names: col += 1 self.w_arg.layout().addWidget(Qt.QLabel(name), 0, col) self.argEdit = Qt.QLineEdit() self.w_arg.layout().addWidget(self.argEdit, 1, col) _argEditors.append(self.argEdit) for e, v in zip(_argEditors, d_values): if v is None: continue e.setText(str(v)) # Create bottom layout self.mb = MacroButton() self.mb.setModel(door_name) self.w_bottom = Qt.QWidget() self.w_bottom.setLayout(Qt.QGridLayout()) self.w_bottom.layout().addWidget(self.mb, 0, 0, 2, 7) self.w_bottom.layout().addWidget(Qt.QLabel('Result:'), 2, 0) self.result_label = Qt.QLabel() self.w_bottom.layout().addWidget(self.result_label, 2, 1, 1, 5) self.show_progress = Qt.QCheckBox('Progress') self.show_progress.setChecked(True) self.w_bottom.layout().addWidget(self.show_progress, 3, 0) mb_abort = TaurusCommandButton( command='StopMacro', icon=':/actions/media_playback_stop.svg') mb_abort.setModel(door_name) self.w_bottom.layout().addWidget(mb_abort, 3, 1) # Toggle progressbar self.show_progress.stateChanged.connect(self.toggle_progress) # connect the argument editors for i, editor in enumerate(_argEditors): slot = functools.partial(self.mb.updateMacroArgument, i) editor.textChanged.connect(slot) self.setLayout(Qt.QVBoxLayout()) self.layout().addWidget(self.w_arg) self.layout().addWidget(self.w_bottom) # Update possible macro result self.mb.resultUpdated.connect(self.update_result) self.w_macro_name.textEdited.connect(self.update_macro_name) self.w_macro_name.editingFinished.connect(self.update_layout) self.w_macro_name.textChanged.connect(self.mb.setMacroName) self.w_macro_name.textChanged.connect(self.mb.setButtonText) # Since everything is now connected, the parameters will be updated self.w_macro_name.setText(macro_name)