我有一个QStringList属性,我基本上想要动态地将它变成一组单选按钮,这样当QStringList属性改变按钮的数量时,它们的标签会自动更新。
我可以排序使用ListView来做,但它有问题:
无论如何,这是我的尝试。我理想情况下喜欢在没有ListView的情况下这样做:
ListView {
id: myList
orientation: ListView.Horizontal
ExclusiveGroup {
id: myListExclusiveGroup
}
Component {
id: myDelegate
RadioButton {
text: modelData
onCheckedChanged: {
if (checked)
myList.currentIndex = index
}
exclusiveGroup: myListExclusiveGroup
}
}
model: myListOfStrings
delegate: myDelegate
focus: true
}
答案 0 :(得分:3)
感谢koopajah,我将其更改为使用Repeater
,现在可以使用了。请注意,似乎Repeater
将所有内容添加到其父级子项的 end 中,这意味着您无法依赖其在布局中的位置 - 您必须将其放在另一个布局中,像这样的例子:
ExclusiveGroup {
id: myListExclusiveGroup
}
RowLayout {
Repeater {
id: myList
RadioButton {
text: modelData
exclusiveGroup: myListExclusiveGroup
}
model: myListOfStrings
focus: true
}
}