Ejemplo n.º 1
0
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_()
Ejemplo n.º 2
0
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_()
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
    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")
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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()
Ejemplo n.º 8
0
    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()
Ejemplo n.º 9
0
        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
Ejemplo n.º 10
0
 def createEditor(self, parent, option, index):
     if index.column() == 3:
         return Qt.QCheckBox(parent)
     else:
         return Qt.QItemDelegate.createEditor(self, parent, option, index)
Ejemplo n.º 11
0
    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)
Ejemplo n.º 12
0
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
Ejemplo n.º 13
0
        _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)
Ejemplo n.º 14
0
        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)
Ejemplo n.º 15
0
        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
Ejemplo n.º 16
0
        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)