Att*_*esi 5 qt combobox qml qabstractlistmodel
我有一个 QML ,上面ComboBox有一个QAbstractListModel附件。像这样的东西:
ComboBox {
model: customListModel
}
Run Code Online (Sandbox Code Playgroud)
我希望它在下拉列表中显示模型中没有的额外项目。
例如,假设有两个项目customListModel:苹果和橙子。在下拉列表中应显示以下选项:
我无法将其添加到模型中,因为它包含自定义对象,并且我在程序中的其他几个地方使用了该模型,这会搞砸一切。
如何将这个“全选”选项添加到ComboBox???
一种方法是创建某种代理模型。这里有几个想法:
您可以派生自己的 QAbstractProxyModel,将“全选”项添加到数据中。这可能是更复杂的选项,但也更有效。可以在此处找到以这种方式创建代理的示例。
您还可以在 QML 中创建代理。它看起来像这样:
Combobox {
model: ListModel {
id: proxyModel
ListElement { modelData: "Select All" }
Component.onCompleted: {
for (var i = 0; i < customListModel.count; i++) {
proxyModel.append(customModel.get(i);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3262 次 |
| 最近记录: |