Qt QML以编程方式将ExclusiveGroup设置为ListView中的RadioButton

Qt QML以编程方式将ExclusiveGroup设置为ListView中的RadioButton,qt,qml,qt5,Qt,Qml,Qt5,你好 我正在尝试创建包含RadioButton控件的动态listview。 我想有4行,每行将包含4个单选按钮,每行上的按钮属于一个排他性组 我尝试在创建ListElement时直接设置ExclusiveGroup,但它给出了一个错误 ExclusiveGroup {id: eg1} ExclusiveGroup {id: eg2} ExclusiveGroup {id: eg3} ListView { id: listView anchors.fill: parent

你好

我正在尝试创建包含RadioButton控件的动态listview。 我想有4行,每行将包含4个单选按钮,每行上的按钮属于一个排他性组

我尝试在创建ListElement时直接设置ExclusiveGroup,但它给出了一个错误

ExclusiveGroup {id: eg1}
ExclusiveGroup {id: eg2}
ExclusiveGroup {id: eg3}

ListView {
    id: listView
    anchors.fill: parent
    model: myModel
    delegate: RowLayout {
        //property ExclusiveGroup eg: null
        spacing: 5
        RadioButton {
            id: r1
            text: option_1
            //exclusiveGroup: eg
        }
        RadioButton {
            id: r2
            text: option_2
            //exclusiveGroup: eg
        }
        RadioButton {
            id: r3
            text: option_3
            //exclusiveGroup: eg
        }
        RadioButton {
            id: r4
            text: option_4
            //exclusiveGroup: eg
        }
    }
}

ListModel {
    id: myModel
    ListElement {option_1: "8"; option_2: "9"; option_3: "37"; option_4: "27"}//; eg: eg1}
    ListElement {option_1: "12"; option_2: "15"; option_3: "16"; option_4: "17"} //; eg: eg2);
    ListElement {option_1: "1936"; option_2: "1938"; option_3: "1939"; option_4: "1940"} //; eg: eg3);
}
如果我在
liselement
中添加部分例如:eg1,那么它将给出一个错误

ListElement: cannot use script for property value

如果希望每行中的按钮都是独占的,可以将其作为代理的一部分:

ListModel {
    id: myModel
    ListElement {option_1: "8"; option_2: "9"; option_3: "37"; option_4: "27"}
    ListElement {option_1: "12"; option_2: "15"; option_3: "16"; option_4: "17"}
    ListElement {option_1: "1936"; option_2: "1938"; option_3: "1939"; option_4: "1940"}
}

ListView {
    id: listView
    anchors.fill: parent
    model: myModel
    delegate: RowLayout {
        ExclusiveGroup { id: group } // <---
        spacing: 5
        RadioButton {
            id: r1
            text: option_1
            exclusiveGroup: group
        }
        RadioButton {
            id: r2
            text: option_2
            exclusiveGroup: group
        }
        RadioButton {
            id: r3
            text: option_3
            exclusiveGroup: group
        }
        RadioButton {
            id: r4
            text: option_4
            exclusiveGroup: group
        }
    }
}
ListModel{
id:myModel
列表元素{选项1:“8”;选项2:“9”;选项3:“37”;选项4:“27”}
列表元素{选项1:“12”;选项2:“15”;选项3:“16”;选项4:“17”}
列表元素{选项1:“1936”;选项2:“1938”;选项3:“1939”;选项4:“1940”}
}
列表视图{
id:listView
锚定。填充:父级
型号:myModel
代表:行布局{

ExclusiveGroup{id:group}//谢谢!我也想到了这种方法,但当时想把它写下来,但我想你在我之前也想到了:)