qml 遍历自定义链表

自定义链表:

   property list<SelfList> listSelfModel:[
        SelfList{
            name: qsTr("1");
            list: [
                Self{name:"a";text:qsTr("aaaa")},
                Self{name:"b";text:qsTr("bbbb")}
            ]
        },

        SelfList{
            name: qsTr("2");
            list: [
                Self{name:"c";text:qsTr("cccc")},
                Self{name:"d";text:qsTr("dddd")}
            ]
        },
        SelfList{
            name: qsTr("3");
            list: [
                Self{name:"e";text:qsTr("eeee")},
                Self{name:"f";text:qsTr("ffff")}
            ]
        }
    ]

//遍历

    Timer{
        id:time11
        interval: 6000;running: true;repeat: true
        onTriggered: {
            for(var x =0;x<listSelfModel.length;x++)
            {
                for(var i =0;i<listSelfModel[x].list.length;i++){
                    console.log("list"+x+ "->" +i + "-->" + listSelfModel[x].list[i].name )
                }
            }
        }
    }

### 遍历数组的方法 QML 中的数组本质上是 JavaScript 数组,因此可以直接使用 JavaScript 提供的数组遍历方法。常用的遍历方式包括 `for` 循环、`for...of` 循环、`forEach` 方法等。这些方法可以用于访问数组中的每一个元素,并执行特定操作。 以下是一个使用 `for` 循环遍历数组的示例: ```qml Item { width: 200 height: 200 MouseArea { anchors.fill: parent onClicked: { var arr = [10, 20, 30, 40, 50]; for (var i = 0; i < arr.length; i++) { console.log("Element at index " + i + ": " + arr[i]); } } } } ``` 该方式适用于需要通过索引访问数组元素的场景,并能灵活控制遍历过程[^1]。 使用 `for...of` 循环可以更简洁地遍历数组元素: ```qml MouseArea { anchors.fill: parent onClicked: { var arr = [10, 20, 30, 40, 50]; for (var element of arr) { console.log("Element: " + element); } } } ``` 这种方式适用于只需要访问数组元素而不需要索引的情况。 `forEach` 是数组的内置方法,用于对数组中的每个元素执行一次提供的函数: ```qml MouseArea { anchors.fill: parent onClicked: { var arr = [10, 20, 30, 40, 50]; arr.forEach(function(element) { console.log("Element: " + element); }); } } ``` 该方法适用于需要对数组元素执行相同操作的场景,且代码结构更清晰。 ### 使用 ListModel 遍历数组元素 如果需要在 QML 中进行数据绑定和动态更新,可以使用 `ListModel` 来存储数组元素,并通过索引进行遍历: ```qml Item { width: 200 height: 200 ListModel { id: myModel ListElement { value: 10 } ListElement { value: 20 } ListElement { value: 30 } ListElement { value: 40 } ListElement { value: 50 } } MouseArea { anchors.fill: parent onClicked: { for (var i = 0; i < myModel.count; i++) { var item = myModel.get(i); console.log("Element at index " + i + ": " + item.value); } } } } ``` 这种方式适用于需要结合 QML 的视图组件(如 `ListView`)进行数据绑定和动态更新的场景。 ### 使用 JSON 数据遍历数组元素 QML 也可以通过读取 JSON 文件获取数组数据,并进行遍历。以下是一个示例: 假设有一个 `data.json` 文件,内容如下: ```json [10, 20, 30, 40, 50] ``` QML 中读取并遍历: ```qml MouseArea { anchors.fill: parent onClicked: { var file = new XMLHttpRequest(); file.open("GET", "data.json", false); file.send(null); var arr = JSON.parse(file.responseText); for (var i = 0; i < arr.length; i++) { console.log("Element at index " + i + ": " + arr[i]); } } } ``` 该方式适用于需要从外部文件加载数组数据并进行处理的场景。 ### 使用嵌套数组遍历多维数据 QML 支持嵌套数组,并可以通过多重循环进行遍历。以下是一个示例: ```qml MouseArea { anchors.fill: parent onClicked: { var matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; for (var i = 0; i < matrix.length; i++) { for (var j = 0; j < matrix[i].length; j++) { console.log("Element at row " + i + ", column " + j + ": " + matrix[i][j]); } } } } ``` 该方式适用于处理二维数组或多维数组数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值