我刚刚开始使用Qt,并试图制作运行ListView
模型元素的函数。
我在" myButton.qml"中有自定义按钮。其中包括" normal"," press"," selected"等。
ListView
位于" main.qml"。结构是这样的:
ListView{
//...
model: nameModel
delegate: myButton {
//...
}
}
所以这是我的目标:这个按钮列表应该像一组radiobuttons一样 - 只有一个可以选择状态,选择状态是按下按钮。我认为我应该有点击处理程序和一个调用按钮点击的函数。功能应检查按钮列表,如果在功能刚刚将其状态更改为"正常"之前选择了一个按钮。
所以我不知道如何编写这个函数,我应该把它放在哪里。我读过Qt文档,但仍然不知道。
答案 0 :(得分:1)
解决此问题的一种简单方法是利用ExclusiveGroup
。正如documentation中所讨论的,对此类型的支持可以添加到任何类型中:
可以为对象或控件添加对ExclusiveGroup的支持。它应该具有已检查属性,并且 checkedChanged ,切换()或切换(bool)信号。当设置了ExclusiveGroup类型属性时,它还需要与ExclusiveGroup :: bindCheckable()绑定。
您可以在ExclusiveGroup
级别定义ListView
,并在ListView
委托中实施所需的逻辑。通过将委托ExclusiveGroup
属性绑定到ExclusiveGroup
的{{1}},您可以实现所需的目标,而无需使用爬行模型的函数。
演示用法的最终玩具示例:
ListView