예제 #1
0
def test_TaurusValueCombobox(qtbot, model, names, value, expected):
    """Check that the TaurusValueComboBox is started with the right display
    See https://github.com/taurus-org/taurus/pull/1032
    """
    a = taurus.Attribute(model)
    a.write(value)
    w = TaurusValueComboBox()
    qtbot.addWidget(w)
    # ----------------------------------
    # workaround: avoid PySide2 segfaults when adding quantity to combobox
    # https://bugreports.qt.io/browse/PYSIDE-683
    if isinstance(value, UR.Quantity) and PYSIDE2:
        pytest.skip("avoid segfault due to PYSIDE-683 bug")
    # ----------------------------------
    w.addValueNames(names)
    qtbot.wait_until(lambda: w.count() == len(names), timeout=3200)
    try:
        with qtbot.waitSignal(w.valueChangedSignal, timeout=3200):
            w.setModel(model)
        assert w.currentText() == expected
    finally:
        del a
        # set model to None as an attempt to avoid problems in atexit()
        with qtbot.waitSignal(w.valueChangedSignal, timeout=3200):
            w.setModel(None)
예제 #2
0
    def setModel(self, model):
        TaurusValueComboBox.setModel(self, '%s/value' % model)  #@todo: change this (it assumes tango naming!)

        try: ior_dev = taurus.Device(model)
        except: return

        labels = ior_dev.getAttribute('Labels').read().value
        labels_list = labels.split(' ')

        # Update the mapping
        self.writeValueNames = []
        for label_and_value in labels_list:
            label, value = label_and_value.split(':')
            self.writeValueNames.append((label, value))

        self.setValueNames(self.writeValueNames)
예제 #3
0
    def setModel(self, model):
        # @todo: change this (it assumes tango naming!)
        TaurusValueComboBox.setModel(self, '%s/value' % model)

        try:
            ior_dev = taurus.Device(model)
        except:
            return

        labels = ior_dev.getAttribute('Labels').read().value
        labels_list = labels.split(' ')

        # Update the mapping
        self.writeValueNames = []
        for label_and_value in labels_list:
            label, value = label_and_value.split(':')
            self.writeValueNames.append((label, value))

        self.setValueNames(self.writeValueNames)