Qt-Qml:绑定复选框到 QAbstractListModel
Qt-Qml: Binding checkbox to QAbstractListModel
我在开发程序时遇到问题。我有一个包含 boole
属性 的 QAbstractListModel
,我希望能够将该值传递给我包含 CheckBox
.
的 QML 文件
我发现 this question on Whosebug 涵盖了同样的问题。我面临着完全相同的问题,但问题和答案涵盖了 属性 通过 Q_PROPERTY
发送到 qml 而我使用 QAbstractListmodel
的情况。我已经覆盖了 setData()
、data()
和 flags()
方法并且一切正常,但我有一个按钮 check/uncheck 我所有的 CheckBox
es 并且如果用户直接检查其中之一,其中一个将无法通过我的 check/uncheck 按钮进行编辑。
基本上,我想知道如何使用 QAbstractListModel
而不是 Q_PROPERTY
来设置双向绑定。
谢谢。
抱歉打扰了。我用我的小脑袋花了5分多钟才找到答案。
我只需要使用 dataChanged
信号就可以将我的模型正确连接到视图。
CheckBox {
id: myCheck
onClicked: user.status = checked
Component.onCompleted: checked = user.status
Connections {
target: user
onDataChanged: myCheck.checked = user.status
}
}
不知道我们可以将现有信号直接传递给 QML,只需将 on
放在信号名称前面即可。
我在开发程序时遇到问题。我有一个包含 boole
属性 的 QAbstractListModel
,我希望能够将该值传递给我包含 CheckBox
.
我发现 this question on Whosebug 涵盖了同样的问题。我面临着完全相同的问题,但问题和答案涵盖了 属性 通过 Q_PROPERTY
发送到 qml 而我使用 QAbstractListmodel
的情况。我已经覆盖了 setData()
、data()
和 flags()
方法并且一切正常,但我有一个按钮 check/uncheck 我所有的 CheckBox
es 并且如果用户直接检查其中之一,其中一个将无法通过我的 check/uncheck 按钮进行编辑。
基本上,我想知道如何使用 QAbstractListModel
而不是 Q_PROPERTY
来设置双向绑定。
谢谢。
抱歉打扰了。我用我的小脑袋花了5分多钟才找到答案。
我只需要使用 dataChanged
信号就可以将我的模型正确连接到视图。
CheckBox {
id: myCheck
onClicked: user.status = checked
Component.onCompleted: checked = user.status
Connections {
target: user
onDataChanged: myCheck.checked = user.status
}
}
不知道我们可以将现有信号直接传递给 QML,只需将 on
放在信号名称前面即可。