一次只选中一个复选框(委托内部给出的复选框)

问题描述 投票:0回答:2

目前所有复选框都是可勾选的。我只需要选中一个复选框。

    TableView {
       id: table 
       anchors.fill: parent 

       model:  display_model 
       TableViewColumn {
          role: "checkbox"
          delegate: CheckBox {
              id: delegate_chekbox
                onCheckedChanged: {
                    console.log(model.index)
                }
          }
       }
qt checkbox qml delegates
2个回答
0
投票

为了完整性:正如@StephenQuan 的评论中提到的,如果您只需要一个选定的项目,请使用 RadioButtons。这里有一个小例子:

TableView {
    id: table
    anchors.fill: parent

    model:  10

    delegate: RadioButton {
    }

}

0
投票

我想补充一点,期望的行为也可以通过复选框来实现。 CheckBox 继承了 AbstractButton,因此可以添加到 ButtonGroup。如果 ButtonGroup 将“exclusive”设置为 true(默认),则一次只能检查一个按钮。这也使您可以通过 ButtonGroup 组件轻松访问当前选中的按钮等。

TableView {
    id: table
    anchors.fill: parent

    model:  10

    delegate: CheckBox {
        ButtonGroup.group: group
    }
}

ButtonGroup {
    id: group
    exclusive: true //its default "true" so you don't really have to set this
}
© www.soinside.com 2019 - 2024. All rights reserved.