在 QML ListView 中显示 QVariantList 并根据类型使用不同的 Delegate

Posted

技术标签:

【中文标题】在 QML ListView 中显示 QVariantList 并根据类型使用不同的 Delegate【英文标题】:Display QVariantList in QML ListView and use different Delegate depending on the type 【发布时间】:2015-12-12 10:58:19 【问题描述】:

我想将 C++ 中的 QVariantList 公开给 QMLQVariantList 可以包含 IntegerQStringQStringList 类型的数据。我想将它用作 QML ListView模型,并且我想为元素 取决于 使用不同的 DelegateQVariantList 中的type 上。因此Integer 类型的数据与StringStringList 类型的数据显示不同。

如何检测QMLQVariantList中元素的类型? 如何根据类型使用不同的delegate

我需要一个解决方案,我可以更改暴露的 QVariantList 并且 ListView 及其代表会更改。

【问题讨论】:

【参考方案1】:

我没有找到在 QML 中确定 QVariant 类型的方法,但我现在使用的是不同的类型,它通过字符串公开其类型。

关于如何创建具有不同delegate的ListView的问题,可以在这里找到解决方案:Different delegates for QML ListView

【讨论】:

以上是关于在 QML ListView 中显示 QVariantList 并根据类型使用不同的 Delegate的主要内容,如果未能解决你的问题,请参考以下文章

Qt中使用QML和Listview的问题

在 QML ListView 中显示 QVariantList 并根据类型使用不同的 Delegate

如何从 C++ 访问 QML ListView 委托项目?

QML Listview 选中的项目在点击时突出显示

获取当前显示的委托的索引 - QML ListView

Qt ListView 不显示 C++ 模型内容