Qt QML以编程方式将ExclusiveGroup设置为ListView中的RadioButton
你好 我正在尝试创建包含RadioButton控件的动态listview。 我想有4行,每行将包含4个单选按钮,每行上的按钮属于一个排他性组 我尝试在创建ListElement时直接设置ExclusiveGroup,但它给出了一个错误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
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}//谢谢!我也想到了这种方法,但当时想把它写下来,但我想你在我之前也想到了:)