如何在 QML 的列表中直接声明项目?

Posted

技术标签:

【中文标题】如何在 QML 的列表中直接声明项目?【英文标题】:How to declare items directly in a list in QML? 【发布时间】:2018-08-28 08:13:34 【问题描述】:

我在 QML 中有一个 Dummy 对象:

import QtQuicks 2.7
Item  property int foo: 0 

而另一个卑鄙的人需要创建这样一个对象的实例列表。但是我该如何声明呢?在列表中使用直接的 QML 声明不起作用:

import QtQuicks 2.7

Item 
    property var fools: [
        Dummy foo: 1,
        Dummy foo: 2,
        Dummy foo: 3
    ]

我收到错误Cannot assign multiple values to a singular property

如何正确声明一个假人列表?

【问题讨论】:

QtQuick 2.7 是你能用的最高版本,还是能用最新的? 您不能使用ObjectModel 或VisualItemModel(取决于您的QtQuick 版本)吗? 您是否收到错误消息?你期待什么? 错误是:Cannot assign multiple values to a singular property 【参考方案1】:

如果你用的是最近的Qt版本(用Qt 5.9测试过,不知道什么时候引入的,但5.7没有)你可以使用type:

property list<Item> itemList: [
    Item ,
    Item ,
    ...
]

【讨论】:

以上是关于如何在 QML 的列表中直接声明项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 QML 中的 Listview 中保留特定列表项之间的空间

如何在 QML 中添加和使用资源?

如何在 Qt Quick 中将 QML 项目转换为相应的 C++ 项目

如何使用 QML 创建全局图像?

如何从QML基本类型列表中动态删除元素?

在 QML 中声明 JS-dicts 时如何使用 JS 数组作为键