def main(): import taurus.qt.qtgui.icon # otherwise the arrows don't show in the demo global arrowWidget def resetAll(): arrowWidget.resetIntDigitCount() arrowWidget.resetDecDigitCount() arrowWidget.resetMinValue() arrowWidget.resetMaxValue() arrowWidget.resetValue() def setNAN(): arrowWidget.setValue(float('nan')) def setNone(): arrowWidget.setValue(None) a = Qt.QApplication([]) panel = Qt.QWidget() l = Qt.QFormLayout(panel) button_layout = Qt.QVBoxLayout() arrowWidget = QWheelEdit(panel) isb, dsb = Qt.QSpinBox(panel), Qt.QSpinBox(panel) minv, maxv = Qt.QDoubleSpinBox(panel), Qt.QDoubleSpinBox(panel) resetbutton = Qt.QPushButton("Reset", panel) resetbutton.setDefault(True) nanbutton = Qt.QPushButton("Set NAN", panel) nonebutton = Qt.QPushButton("Set None", panel) hideEditCB = Qt.QCheckBox() hideEditCB.setChecked(True) showarrowbutton = Qt.QCheckBox("", panel) l.addRow("Value", arrowWidget) l.addRow("Integer digits:", isb) l.addRow("Decimal digits:", dsb) l.addRow("Minimum value:", minv) l.addRow("Maximum value:", maxv) l.addRow("Show arrows:", showarrowbutton) l.addRow("hideEditCB", hideEditCB) l.addRow(button_layout) button_layout.addWidget(nanbutton) button_layout.addWidget(nonebutton) button_layout.addWidget(resetbutton) isb.setValue(arrowWidget.getIntDigitCount()) dsb.setValue(arrowWidget.getDecDigitCount()) minv.setRange(numpy.finfo('d').min, numpy.finfo('d').max) maxv.setRange(numpy.finfo('d').min, numpy.finfo('d').max) minv.setValue(arrowWidget.getMinValue()) maxv.setValue(arrowWidget.getMaxValue()) showarrowbutton.setChecked(arrowWidget.getShowArrowButtons()) isb.valueChanged.connect(arrowWidget.setIntDigitCount) dsb.valueChanged.connect(arrowWidget.setDecDigitCount) minv.valueChanged.connect(arrowWidget.setMinValue) showarrowbutton.stateChanged.connect(arrowWidget.setShowArrowButtons) nanbutton.clicked.connect(setNAN) nonebutton.clicked.connect(setNone) hideEditCB.toggled.connect(arrowWidget.setHideEditWidget) resetbutton.clicked.connect(resetAll) panel.setVisible(True) a.exec_()
def main(): global arrowWidget def resetAll(): arrowWidget.resetIntDigitCount() arrowWidget.resetDecDigitCount() arrowWidget.resetMinValue() arrowWidget.resetMaxValue() arrowWidget.resetValue() def setNAN(): arrowWidget.setValue(float('nan')) def setNone(): arrowWidget.setValue(None) a = Qt.QApplication([]) panel = Qt.QWidget() l = Qt.QFormLayout(panel) button_layout = Qt.QVBoxLayout() arrowWidget = QWheelEdit(panel) isb, dsb = Qt.QSpinBox(panel), Qt.QSpinBox(panel) minv, maxv = Qt.QDoubleSpinBox(panel), Qt.QDoubleSpinBox(panel) resetbutton = Qt.QPushButton("Reset", panel) resetbutton.setDefault(True) nanbutton = Qt.QPushButton("Set NAN", panel) nonebutton = Qt.QPushButton("Set None", panel) showarrowbutton = Qt.QCheckBox("", panel) l.addRow("Value", arrowWidget) l.addRow("Integer digits:", isb) l.addRow("Decimal digits:", dsb) l.addRow("Minimum value:", minv) l.addRow("Maximum value:", maxv) l.addRow("Show arrows:", showarrowbutton) l.addRow(button_layout) button_layout.addWidget(nanbutton) button_layout.addWidget(nonebutton) button_layout.addWidget(resetbutton) isb.setValue(arrowWidget.getIntDigitCount()) dsb.setValue(arrowWidget.getDecDigitCount()) minv.setRange(numpy.finfo('d').min, numpy.finfo('d').max) maxv.setRange(numpy.finfo('d').min, numpy.finfo('d').max) minv.setValue(arrowWidget.getMinValue()) maxv.setValue(arrowWidget.getMaxValue()) showarrowbutton.setChecked(arrowWidget.getShowArrowButtons()) Qt.QObject.connect(isb, Qt.SIGNAL("valueChanged(int)"), arrowWidget.setIntDigitCount) Qt.QObject.connect(dsb, Qt.SIGNAL("valueChanged(int)"), arrowWidget.setDecDigitCount) Qt.QObject.connect(minv, Qt.SIGNAL("valueChanged(double)"), arrowWidget.setMinValue) Qt.QObject.connect(showarrowbutton, Qt.SIGNAL("stateChanged(int)"), arrowWidget.setShowArrowButtons) Qt.QObject.connect(nanbutton, Qt.SIGNAL("clicked()"), setNAN) Qt.QObject.connect(nonebutton, Qt.SIGNAL("clicked()"), setNone) Qt.QObject.connect(resetbutton, Qt.SIGNAL("clicked()"), resetAll) panel.setVisible(True) a.exec_()
def create_boolean_panel(self, input_data): panel = self._create_simple_panel(input_data) layout = panel.layout() self._ui.inputWidget = checkbox = Qt.QCheckBox() value = input_data.get('default_value', False) checkbox.setChecked(value) layout.addWidget(checkbox, 0, 1) return panel, self._get_boolean_value
def __init__(self, parent=None): BaseConfigurableClass.__init__(self) Qt.QWidgetAction.__init__(self, parent) self._cb = Qt.QCheckBox() self._cb.setText("Data Inspector") self._cb.toggled.connect(self._onToggled) self.setDefaultWidget(self._cb) self.plot_item = None self.enable = False self.data_inspector = DataInspectorLine() self.registerConfigProperty(self.isChecked, self.setChecked, "checked")
def __init__(self, parent=None): """ constructor :param parent: parent object :type parent: :class:`taurus.qt.Qt.QObject` """ Qt.QWidget.__init__(self, parent) #: (:class:`taurus.qt.Qt.QCheckBox`) element checkbox widget self.checkBox = Qt.QCheckBox(self) #: (:class:`taurus.qt.Qt.QCheckBox`) element label widget self.label = Qt.QLabel(self) layout = Qt.QHBoxLayout() layout.addWidget(self.checkBox) layout.addWidget(self.label) layout.setContentsMargins(2, 2, 2, 2) self.setLayout(layout)
def createEditor(self, parent, option, index): """ created editor :param parent: parent object :type parent: :class:`taurus.qt.Qt.QObject` :param option: editor option :type option: :class:`taurus.qt.Qt.QStyleOptionViewItem` :param index: element index :type index: :class:`taurus.qt.Qt.QModelIndex` :returns: created editor :rtype: :class:`taurus.qt.Qt.QWidget` """ if index.column() == 0: editor = Qt.QCheckBox(parent) return editor else: return Qt.QItemDelegate.createEditor(self, parent, option, index)
def setupUi(self): self.setLayout(Qt.QGridLayout()) self.setWindowTitle('VACCA: Tango/Taurus Applications Launcher') self.setWindowFlags(Qt.Qt.WindowStaysOnTopHint) self.check = Qt.QCheckBox() self.check.setText('add tango formatter') self.args = Qt.QLineEdit("") self.cols = int(ceil(len(APPS) / 2.)) self.buttons = [] self.resize(self.cols * 200, 150) ly = self.layout() ly.addWidget(self.check, 2, self.cols - 1) ly.addWidget(Qt.QLabel("arguments"), 2, 0) ly.addWidget(self.args, 2, 1, 1, self.cols - 2) self.check.clicked.connect(self.update_models) self.args.textChanged.connect(self.update_models) for j in range(2): for i in range(self.cols): try: x = self.cols * j + i if x >= len(APPS): break a = APPS[x] b = VaccaAction(default=a) #Qt.QPushButton() self.buttons.append(b) b.setText(a) b.setLogLevel(b.Warning) ly.addWidget(b, j, i) #b.clicked.connect( ##b,Qt.SIGNAL("triggered()"),launch_app) #(lambda v,o=b:launch_app(o))) except: traceback.print_exc() self.update_models()
def __init__(self, parent=None, designMode=False, defaultWriteMode=None): TaurusWidget.__init__(self, parent=parent, designMode=designMode) self._tableView = TaurusValuesIOTable(self) l = Qt.QGridLayout() l.addWidget(self._tableView, 1, 0) self._tableView.itemDelegate().editorCreated.connect( self._onEditorCreated) if defaultWriteMode is None: self.defaultWriteMode = "rw" else: self.defaultWriteMode = defaultWriteMode self._label = TaurusLabel() self._label.setBgRole('quality') self._label.setFgRole('quality') self._units = Qt.QComboBox() self._applyBT = Qt.QPushButton('Apply') self._cancelBT = Qt.QPushButton('Cancel') self._applyBT.clicked.connect(self.okClicked) self._cancelBT.clicked.connect(self.cancelClicked) self._rwModeCB = Qt.QCheckBox() self._rwModeCB.setText('Write mode') self._rwModeCB.toggled.connect(self.setWriteMode) lv = Qt.QHBoxLayout() lv.addWidget(self._label) lv.addWidget(self._units) l.addLayout(lv, 2, 0) l.addWidget(self._rwModeCB, 0, 0) lv = Qt.QHBoxLayout() lv.addWidget(self._applyBT) lv.addWidget(self._cancelBT) l.addLayout(lv, 3, 0) self._writeMode = False self.setLayout(l) self._initActions()
def __init__(self, parent=None): Qt.QWidget.__init__(self, parent) panel_l = Qt.QVBoxLayout() self.setLayout(panel_l) panel_l.setContentsMargins(M, M, M, M) panel_l.setSpacing(M) w = TaurusLed() display_panel = Qt.QGroupBox("Taurus Led Display") display_l = Qt.QHBoxLayout() display_l.setContentsMargins(M, M, M, M) display_l.setSpacing(M) display_panel.setLayout(display_l) display_l.addWidget(w, 1) control_panel = Qt.QGroupBox("Control Panel") control_l = Qt.QFormLayout() control_l.setContentsMargins(M, M, M, M) control_l.setSpacing(M) control_panel.setLayout(control_l) inverted_widget = Qt.QCheckBox() model_widget = Qt.QLineEdit() model_index_widget = Qt.QLineEdit() fg_widget = Qt.QComboBox() on_color_widget = Qt.QComboBox() off_color_widget = Qt.QComboBox() control_l.addRow("inverted:", inverted_widget) control_l.addRow("model:", model_widget) control_l.addRow("model index:", model_index_widget) control_l.addRow("foreground role:", fg_widget) control_l.addRow("ON color:", on_color_widget) control_l.addRow("OFF color:", off_color_widget) panel_l.addWidget(display_panel, 1) panel_l.addWidget(control_panel, 0) fg_widget.addItems(["rvalue", "wvalue", "quality"]) colors = [ "green", "blue", "orange", "red", "yellow", "magenta", "grenoble", "black" ] on_color_widget.addItems(colors) off_color_widget.addItems(colors) inverted_widget.toggled.connect(w.setLedInverted) model_widget.textChanged.connect(w.setModel) fg_widget.currentIndexChanged['QString'].connect(w.setFgRole) model_index_widget.textChanged.connect(w.setModelIndex) on_color_widget.currentIndexChanged['QString'].connect( w.setOnColor) off_color_widget.currentIndexChanged['QString'].connect( w.setOffColor) inverted_widget.setChecked(False) model_widget.setText("sys/tg_test/1/state") fg_widget.setCurrentIndex(0) on_color_widget.setCurrentIndex(0) off_color_widget.setCurrentIndex(7) self.w_led = w self.w_model = model_widget self.w_fg = fg_widget self.w_model_index = model_index_widget self.w_on_color = on_color_widget self.w_off_color = off_color_widget
def createEditor(self, parent, option, index): if index.column() == 3: return Qt.QCheckBox(parent) else: return Qt.QItemDelegate.createEditor(self, parent, option, index)
def __init__(self, parent=None, designMode=False): TaurusWidget.__init__(self, parent, designMode) # list representing all macros ids (all from sequence) currently # executed self._macroIds = [] self._sequencesPath = str(Qt.QDir.homePath()) self._sequenceModel = MacroSequenceTreeModel() self.registerConfigProperty("sequencesPath", "setSequencesPath", "sequencesPath") self.setLayout(Qt.QVBoxLayout()) self.layout().setContentsMargins(0, 0, 0, 0) splitter = Qt.QSplitter() self.layout().addWidget(splitter) splitter.setOrientation(Qt.Qt.Vertical) sequenceEditor = TaurusWidget() splitter.addWidget(sequenceEditor) sequenceEditor.setUseParentModel(True) sequenceEditor.setLayout(Qt.QVBoxLayout()) sequenceEditor.layout().setContentsMargins(0, 0, 0, 0) self.tree = MacroSequenceTree(sequenceEditor) self.sequenceProxyModel = MacroSequenceProxyModel() self.sequenceProxyModel.setSourceModel(self._sequenceModel) self.tree.setModel(self.sequenceProxyModel) self.tree.setItemDelegate(SequenceEditorDelegate(self.tree)) actionsLayout = Qt.QHBoxLayout() actionsLayout.setContentsMargins(0, 0, 0, 0) self.newSequenceAction = Qt.QAction(getThemeIcon("document-new"), "New", self) self.newSequenceAction.triggered.connect(self.onNewSequence) self.newSequenceAction.setToolTip("New sequence") self.newSequenceAction.setEnabled(False) newSequenceButton = Qt.QToolButton() newSequenceButton.setDefaultAction(self.newSequenceAction) actionsLayout.addWidget(newSequenceButton) self.openSequenceAction = Qt.QAction(getThemeIcon("document-open"), "Open...", self) self.openSequenceAction.triggered.connect(self.onOpenSequence) self.openSequenceAction.setToolTip("Open sequence...") openSequenceButton = Qt.QToolButton() openSequenceButton.setDefaultAction(self.openSequenceAction) actionsLayout.addWidget(openSequenceButton) self.saveSequenceAction = Qt.QAction(getThemeIcon("document-save"), "Save...", self) self.saveSequenceAction.triggered.connect(self.onSaveSequence) self.saveSequenceAction.setToolTip("Save sequence...") self.saveSequenceAction.setEnabled(False) saveSequenceButton = Qt.QToolButton() saveSequenceButton.setDefaultAction(self.saveSequenceAction) actionsLayout.addWidget(saveSequenceButton) self.stopSequenceAction = Qt.QAction( getIcon(":/actions/media_playback_stop.svg"), "Stop", self) self.stopSequenceAction.triggered.connect(self.onStopSequence) self.stopSequenceAction.setToolTip("Stop sequence") stopSequenceButton = Qt.QToolButton() stopSequenceButton.setDefaultAction(self.stopSequenceAction) actionsLayout.addWidget(stopSequenceButton) self.pauseSequenceAction = Qt.QAction( getIcon(":/actions/media_playback_pause.svg"), "Pause", self) self.pauseSequenceAction.triggered.connect(self.onPauseSequence) self.pauseSequenceAction.setToolTip("Pause sequence") pauseSequenceButton = Qt.QToolButton() pauseSequenceButton.setDefaultAction(self.pauseSequenceAction) actionsLayout.addWidget(pauseSequenceButton) self.playSequenceAction = Qt.QAction( getIcon(":/actions/media_playback_start.svg"), "Play", self) self.playSequenceAction.triggered.connect(self.onPlaySequence) self.playSequenceAction.setToolTip("Play sequence") playSequenceButton = Qt.QToolButton() playSequenceButton.setDefaultAction(self.playSequenceAction) actionsLayout.addWidget(playSequenceButton) self.doorStateLed = TaurusLed(self) actionsLayout.addWidget(self.doorStateLed) #@todo this feature will be replaced by checkboxes in the # sequence tree view indicating clearing of the plot after execution self.fullSequencePlotCheckBox = Qt.QCheckBox("Full sequence plot", self) self.fullSequencePlotCheckBox.toggled.connect(self.setFullSequencePlot) self.fullSequencePlotCheckBox.setChecked(True) actionsLayout.addWidget(self.fullSequencePlotCheckBox) spacerItem = Qt.QSpacerItem(0, 0, Qt.QSizePolicy.Expanding, Qt.QSizePolicy.Fixed) actionsLayout.addItem(spacerItem) sequenceEditor.layout().addLayout(actionsLayout) macroLayout = Qt.QHBoxLayout() macroLayout.setContentsMargins(0, 0, 0, 0) macroLabel = Qt.QLabel("Macro:") macroLayout.addWidget(macroLabel) self.macroComboBox = MacroComboBox(self) self.macroComboBox.setUseParentModel(True) self.macroComboBox.setModelColumn(0) self.macroComboBox.setSizePolicy(Qt.QSizePolicy.Expanding, Qt.QSizePolicy.Minimum) macroLayout.addWidget(self.macroComboBox) self.addMacroAction = Qt.QAction(getThemeIcon("list-add"), "Add macro...", self) self.addMacroAction.triggered.connect(self.onAdd) self.addMacroAction.setToolTip( "Clicking this button will add selected macro") self.addMacroAction.setEnabled(False) addButton = Qt.QToolButton() addButton.setDefaultAction(self.addMacroAction) macroLayout.addWidget(addButton) sequenceEditor.layout().addLayout(macroLayout) sequenceLayout = Qt.QHBoxLayout() sequenceLayout.addWidget(self.tree) layout = Qt.QVBoxLayout() delButton = Qt.QToolButton() delButton.setDefaultAction(self.tree.deleteAction) delButton.setEnabled(False) layout.addWidget(delButton) upButton = Qt.QToolButton() upButton.setDefaultAction(self.tree.moveUpAction) upButton.setEnabled(False) layout.addWidget(upButton) downButton = Qt.QToolButton() downButton.setDefaultAction(self.tree.moveDownAction) downButton.setEnabled(False) layout.addWidget(downButton) leftButton = Qt.QToolButton() leftButton.setDefaultAction(self.tree.moveLeftAction) leftButton.setEnabled(False) layout.addWidget(leftButton) rightButton = Qt.QToolButton() rightButton.setDefaultAction(self.tree.moveRightAction) rightButton.setEnabled(False) layout.addWidget(rightButton) spacerItem = Qt.QSpacerItem(0, 40, Qt.QSizePolicy.Fixed, Qt.QSizePolicy.Expanding) layout.addItem(spacerItem) sequenceLayout.addLayout(layout) sequenceEditor.layout().addLayout(sequenceLayout) self.parametersProxyModel = MacroParametersProxyModel() self.parametersProxyModel.setSourceModel(self._sequenceModel) self.stackedWidget = Qt.QStackedWidget() splitter.addWidget(self.stackedWidget) self.standardMacroParametersEditor = StandardMacroParametersEditor( self.stackedWidget) self.standardMacroParametersEditor.setModel(self.parametersProxyModel) self.standardMacroParametersEditor.tree.setItemDelegate( ParamEditorDelegate(self.standardMacroParametersEditor.tree)) self.stackedWidget.addWidget(self.standardMacroParametersEditor) self.customMacroParametersEditor = None self.macroComboBox.currentIndexChanged.connect( self.onMacroComboBoxChanged) self.tree.macroChanged.connect(self.setMacroParametersRootIndex)
def demo(): "QGroup Widget" w = Qt.QWidget() l = Qt.QVBoxLayout() w.setLayout(l) panel = QGroupWidget() panel.title = "Database" contentLayout = Qt.QFormLayout() panel.content().setLayout(contentLayout) contentLayout.addRow("&Host", Qt.QLineEdit()) contentLayout.addRow("&Port", Qt.QLineEdit()) l.addWidget(panel, 0) panel = QGroupWidget() panel.title = "Hello world" panel.titleIcon = Qt.QIcon.fromTheme("video-x-generic") panel.setTitleStyle({ 'start_color': 'rgb(255, 60, 60)', 'stop_color': 'rgb(200, 0, 0)', 'font_color': 'rgb(140, 0, 0)', 'border_radius': '10px', }) panel.setContentStyle({ 'border_radius': '0px', }) contentLayout = Qt.QFormLayout() panel.content().setLayout(contentLayout) contentLayout.addRow("State", Qt.QPushButton("Press here")) contentLayout.addRow("Status", Qt.QLineEdit()) contentLayout.addRow("Coment", Qt.QLineEdit()) contentLayout.addRow("Build", Qt.QCheckBox()) contentLayout.addRow("Upper limit", Qt.QSpinBox()) contentLayout.addRow("Lower limit", Qt.QSpinBox()) l.addWidget(panel, 0) panel = QGroupWidget() panel.title = "Hello world 2" panel.titleIcon = Qt.QIcon.fromTheme("network-server") panel.titleVisible = False contentLayout = Qt.QFormLayout() panel.content().setLayout(contentLayout) contentLayout.addRow("Something", Qt.QLineEdit()) contentLayout.addRow("More", Qt.QLineEdit()) l.addWidget(panel, 0) panel = QGroupWidget() panel.title = "5" panel.titleIcon = Qt.QIcon.fromTheme("folder") contentLayout = Qt.QVBoxLayout() panel.content().setLayout(contentLayout) panel2 = QGroupWidget() panel2.title = "5.1" panel2.titleIcon = Qt.QIcon.fromTheme("folder") panel2.titleHeight = 48 contentLayout2 = Qt.QFormLayout() panel2.content().setLayout(contentLayout2) contentLayout2.addRow("Something", Qt.QLineEdit()) contentLayout2.addRow("More", Qt.QLineEdit()) contentLayout.addWidget(panel2, 0) l.addWidget(panel, 0) l.addStretch(1) w.show() w.adjustSize() return w
_argEditors.append(argEdit) from sardana.taurus.qt.qtcore.tango.sardana.macroserver import registerExtensions registerExtensions() 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)
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 __init__(self, parent=None): Qt.QWidget.__init__(self, parent) panel_l = Qt.QVBoxLayout() self.setLayout(panel_l) panel_l.setContentsMargins(M, M, M, M) panel_l.setSpacing(M) w = QManoMeter() w.setMinimumSize(256, 256) display_panel = Qt.QGroupBox("QMeter Display") display_l = Qt.QHBoxLayout() display_l.setContentsMargins(M, M, M, M) display_l.setSpacing(M) display_panel.setLayout(display_l) display_l.addWidget(w, 1) control_panel = Qt.QGroupBox("Control Panel") control_l = Qt.QFormLayout() control_l.setContentsMargins(M, M, M, M) control_l.setSpacing(M) control_panel.setLayout(control_l) value_widget = Qt.QDoubleSpinBox() minimum_widget = Qt.QDoubleSpinBox() maximum_widget = Qt.QDoubleSpinBox() minimum_alarm_widget = Qt.QDoubleSpinBox() minimum_warning_widget = Qt.QDoubleSpinBox() maximum_alarm_widget = Qt.QDoubleSpinBox() maximum_warning_widget = Qt.QDoubleSpinBox() steps_widget = Qt.QSpinBox() value_offset_widget = Qt.QDoubleSpinBox() digit_offset_widget = Qt.QDoubleSpinBox() frame_width_widget = Qt.QSpinBox() angle_widget = Qt.QDoubleSpinBox() scale_color_widget = Qt.QCheckBox() scale_ticks_widget = Qt.QCheckBox() scale_text_widget = Qt.QCheckBox() value_text_widget = Qt.QCheckBox() control_l.addRow("Value:", value_widget) control_l.addRow("Minimum:", minimum_widget) control_l.addRow("Min. alarm:", minimum_alarm_widget) control_l.addRow("Min. warning:", minimum_warning_widget) control_l.addRow("Max. warning:", maximum_warning_widget) control_l.addRow("Max. alarm:", maximum_alarm_widget) control_l.addRow("Maximum:", maximum_widget) control_l.addRow("Steps:", steps_widget) control_l.addRow("Value offset:", value_offset_widget) control_l.addRow("Digit offset:", digit_offset_widget) control_l.addRow("Frame width:", frame_width_widget) control_l.addRow("Angle:", angle_widget) control_l.addRow("Scale color", scale_color_widget) control_l.addRow("Scale ticks", scale_ticks_widget) control_l.addRow("Scale text", scale_text_widget) control_l.addRow("Value text", value_text_widget) panel_l.addWidget(display_panel, 1) panel_l.addWidget(control_panel, 0) value_widget.setRange(-1000.0, 1000.0) minimum_widget.setRange(-1000.0, 1000.0) minimum_alarm_widget.setRange(-1000.0, 1000.0) minimum_warning_widget.setRange(-1000.0, 1000.0) maximum_warning_widget.setRange(-1000.0, 1000.0) maximum_alarm_widget.setRange(-1000.0, 1000.0) maximum_widget.setRange(-1000.0, 1000.0) steps_widget.setRange(2, 100) value_offset_widget.setRange(-1000.0, 1000.0) digit_offset_widget.setRange(-1000.0, 1000.0) frame_width_widget.setRange(0, 100) angle_widget.setRange(0.0, 360.0) value_widget.setValue(w.value) minimum_widget.setValue(w.minimum) minimum_alarm_widget.setValue(w.minimumAlarm) minimum_warning_widget.setValue(w.minimumWarning) maximum_warning_widget.setValue(w.maximumWarning) maximum_alarm_widget.setValue(w.maximumAlarm) maximum_widget.setValue(w.maximum) steps_widget.setValue(w.steps) value_offset_widget.setValue(w.valueOffset) digit_offset_widget.setValue(w.digitOffset) frame_width_widget.setValue(w.frameWidth) angle_widget.setValue(w.angle) scale_color_widget.setChecked(w.showScaleColor) scale_ticks_widget.setChecked(w.showScaleTicks) scale_text_widget.setChecked(w.showScaleText) value_text_widget.setChecked(w.showValueText) Qt.QObject.connect(value_widget, Qt.SIGNAL("valueChanged(double)"), w.setValue) Qt.QObject.connect(minimum_widget, Qt.SIGNAL("valueChanged(double)"), w.setMinimum) Qt.QObject.connect(minimum_alarm_widget, Qt.SIGNAL("valueChanged(double)"), w.setMinimumAlarm) Qt.QObject.connect(minimum_warning_widget, Qt.SIGNAL("valueChanged(double)"), w.setMinimumWarning) Qt.QObject.connect(maximum_warning_widget, Qt.SIGNAL("valueChanged(double)"), w.setMaximumWarning) Qt.QObject.connect(maximum_alarm_widget, Qt.SIGNAL("valueChanged(double)"), w.setMaximumAlarm) Qt.QObject.connect(maximum_widget, Qt.SIGNAL("valueChanged(double)"), w.setMaximum) Qt.QObject.connect(steps_widget, Qt.SIGNAL("valueChanged(int)"), w.setSteps) Qt.QObject.connect(value_offset_widget, Qt.SIGNAL("valueChanged(double)"), w.setValueOffset) Qt.QObject.connect(digit_offset_widget, Qt.SIGNAL("valueChanged(double)"), w.setDigitOffset) Qt.QObject.connect(frame_width_widget, Qt.SIGNAL("valueChanged(int)"), w.setFrameWidth) Qt.QObject.connect(angle_widget, Qt.SIGNAL("valueChanged(double)"), w.setAngle) Qt.QObject.connect(scale_color_widget, Qt.SIGNAL("toggled(bool)"), w.setShowScaleColor) Qt.QObject.connect(scale_ticks_widget, Qt.SIGNAL("toggled(bool)"), w.setShowScaleTicks) Qt.QObject.connect(scale_text_widget, Qt.SIGNAL("toggled(bool)"), w.setShowScaleText) Qt.QObject.connect(value_text_widget, Qt.SIGNAL("toggled(bool)"), w.setShowValueText) self.w = w self.w_minimum = minimum_widget self.w_minimum_alarm = minimum_alarm_widget self.w_minimum_warning = minimum_warning_widget self.w_maximum_warning = maximum_warning_widget self.w_maximum_alarm = maximum_alarm_widget self.w_maximum = maximum_widget self.w_steps = steps_widget self.w_value_offset = value_offset_widget self.w_digit_offset = digit_offset_widget self.w_angle = angle_widget
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)