gpt4 book ai didi

qt - 如何向模型中没有的 QML ComboBox 添加额外的项目?

转载 作者:行者123 更新时间:2023-12-04 00:53:55 25 4
gpt4 key购买 nike

我有一个 QML ComboBox其中有一个 QAbstractListModel附在它上面。像这样的东西:

ComboBox {
model: customListModel
}
我希望它在下拉列表中显示一个不在模型中的额外项目。
例如,假设 customListModel 中有两个项目: 苹果和橙子。
在下拉列表中,它应该显示以下选项:
  • 全选
  • 苹果
  • 橙色

  • 我无法将它添加到模型中,因为它包含自定义对象,我在程序中的其他几个地方使用了这个模型,它会搞砸一切。
    如何将此“全选”选项添加到 ComboBox ???

    最佳答案

    一种方法是创建某种代理模型。这里有几个想法:

  • 您可以派生自己的 QAbstractProxyModel,将“全选”项添加到数据中。这可能是更复杂的选项,但也更有效。可以找到以这种方式创建代理的示例 here .
  • 您也可以在 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);
    }
    }
    }
    }

    关于qt - 如何向模型中没有的 QML ComboBox 添加额外的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64236237/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com