7

我的页面中有 3 个单选按钮,QML 桌面应用程序。一旦我检查了一个 - 我希望所有其他都未选中。

我尝试使用CheckableGroup我在帮助中找到的代码:

CheckableGroup { id: group }
Row {
 id: row
 spacing: platformStyle.paddingMedium
 RadioButton {
     id: button1
     text: "1"
     platformExclusiveGroup: group
 }
 RadioButton {
     id: button2
     text: "2"
     platformExclusiveGroup: group
 }
 RadioButton {
     id: button3
     text: "3"
     platformExclusiveGroup: group
     checked: true
 }
}

但我收到错误“platformExclusiveGroup 不是有效的属性名称”我尝试了另一种解决方案

RadioButton {
  id: rbtnDecimal1
  width: 130
  onClicked: {
    if (checked) {
      rbtnHexadecimal1.checked=false;
      rbtnString1.checked=false;
    }
  }
  text: "Decimal Data";
  anchors.left: rbtnHexadecimal1.right
}

当一个按钮被选中时,所有其他按钮都未选中,但其他按钮保持选中状态,直到我将鼠标移到它们上 - 它们变得未选中。

知道如何实施吗?

4

2 回答 2

5

您需要ExclusiveGroupRadioButtons 指定一个。

Row {
    id: row
    ExclusiveGroup { id: group }
    RadioButton {
        id: button1
        text: "1"
        exclusiveGroup: group
    }
    RadioButton {
        id: button2
        text: "2"
        exclusiveGroup: group
    }
    RadioButton {
        id: button3
        text: "3"
        exclusiveGroup: group
        checked: true
    }
}
于 2015-09-25T01:53:16.483 回答
1

QML 桌面组件中的 RadioButton 不支持您的第一种方法,但您可以尝试以下解决方法:

property int currentIndex: 1

onCurrentIndexChanged: {
    button1.checked = currentIndex == 0
    button2.checked = currentIndex == 1
    button3.checked = currentIndex == 2
}

Row {
    RadioButton {
        id: button1
        text: "1"
        onClicked:{
            currentIndex = 0
        }
    }
    RadioButton {
        id: button2
        text: "2"
        onClicked:{
            currentIndex = 1
        }
    }
    RadioButton {
        id: button3
        text: "3"
        onClicked:{
            currentIndex = 2
        }
    }
}
于 2012-11-19T11:16:19.673 回答