ListView模型函数

时间:2016-04-14 14:07:15

标签: qt listview model qml qtquick2

我刚刚开始使用Qt,并试图制作运行ListView模型元素的函数。

我在" myButton.qml"中有自定义按钮。其中包括" normal"," press"," selected"等。

ListView位于" main.qml"。结构是这样的:

ListView{
    //...

    model: nameModel

    delegate: myButton {
        //...
    }

}

所以这是我的目标:这个按钮列表应该像一组radiobuttons一样 - 只有一个可以选择状态,选择状态是按下按钮。我认为我应该有点击处理程序和一个调用按钮点击的函数。功能应检查按钮列表,如果在功能刚刚将其状态更改为"正常"之前选择了一个按钮。

所以我不知道如何编写这个函数,我应该把它放在哪里。我读过Qt文档,但仍然不知道。

1 个答案:

答案 0 :(得分:1)

解决此问题的一种简单方法是利用ExclusiveGroup。正如documentation中所讨论的,对此类型的支持可以添加到任何类型中:

  

可以为对象或控件添加对ExclusiveGroup的支持。它应该具有已检查属性,并且 checkedChanged 切换()切换(bool)信号。当设置了ExclusiveGroup类型属性时,它还需要与ExclusiveGroup :: bindCheckable()绑定。

您可以在ExclusiveGroup级别定义ListView,并在ListView委托中实施所需的逻辑。通过将委托ExclusiveGroup属性绑定到ExclusiveGroup的{​​{1}},您可以实现所需的目标,而无需使用爬行模型的函数。

演示用法的最终玩具示例:

ListView