如何在不使用委托的 QML 中显示模型数据



我有一个简单的QML表单,它只包含输入框。该表单还具有两个按钮"向后"和"向前"。

从数据填充的表单,包含在QT模型的一行中。按钮用于更改当前显示在窗体中的行。

如何完成此用例?比如说,对于Qt 5.9

UPD:我找到了模型的"对象实例"类型。也许是它?我解释了我的担忧:我的任务是常见的,有推荐的解决方案,还是不是 - 这是特殊和非标准的东西。

我想你想要的是类似于QDataWidgetMapper但在QML中的东西。

如果您使用QAbstractItemModel(QMLListModel就是其中之一(,您可以通过收听dataChangedrowsInserted/rowsRemoved信号和朋友来重新创建自己的C++。

幸运的是,我也需要它并且已经写了它,无耻的插头:https://github.com/oKcerG/QmlModelHelper

在您的情况下,您可以像这样使用它:

property int currentIndex: 0
readonly property QtObject mappedData: myModel.ModelHelper.map(currentIndex) 
TextField {
text: parent.mappedData.someTextRole
onAccepted: parent.mappedData.someTextRole = text
}
Button {
text: "previous"
enabled: parent.currentIndex > 0
onClicked: --parent.currentIndex
}
Button {
text: "next"
enabled: parent.currentIndex < myModel.ModelHelper.count - 1
onClicked: ++parent.currentIndex
}

相关内容

  • 没有找到相关文章

最新更新