我在开发程序时遇到问题。我有一个包含QAbstractListModel属性的boole,我希望能够将该值传递到包含CheckBox的QML文件中。

我发现this question on StackOverflow涵盖了相同的问题。我面临着完全相同的问题,但问题和答案涵盖了通过Q_PROPERTY将属性发送到qml的情况,而我使用了QAbstractListmodel。我已经重写了setData()data()flags()方法,并且一切正常,但是我有一个按钮可以检查/取消选中我的所有CheckBox es,如果用户直接检查其中之一,则无法通过我的check / uncheck按钮进行编辑。

因此,基本上,我想知道如何使用QAbstractListModel而不是Q_PROPERTY设置双向绑定(bind)。

谢谢。

最佳答案

对不起,打扰你。我刚刚用我很小的大脑找到了答案超过5分钟。

我只需要使用dataChanged信号即可将模型正确连接到 View 。

 CheckBox {
        id: myCheck
        onClicked: user.status = checked
        Component.onCompleted: checked = user.status
        Connections {
            target: user
            onDataChanged: myCheck.checked = user.status
        }
    }

不知道我们是否可以将现有信号直接传递给QML,只需将on放在信号名称的前面即可。

关于c++ - Qt-Qml:将复选框绑定(bind)到QAbstractListModel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29162671/

10-11 16:57