如何将值推送到 QML 属性变量二维数组 - 动态?

Posted

技术标签:

【中文标题】如何将值推送到 QML 属性变量二维数组 - 动态?【英文标题】:How to push values to QML property variant two dimensional array - dynamically? 【发布时间】:2014-09-29 11:19:10 【问题描述】:

这是我尝试过的:

import QtQuick 2.0

Rectangle

    property variant twoDimTempArray: [[]]
    property variant oneDArray: [1,2,3]

    MouseArea
    
        anchors.fill: parent
        onClicked:
        
            twoDimTempArray.push (oneDArray)

            twoDimTempArray[0].push (oneDArray)

            twoDimTempArray[0][0] = oneDArray[0]

            console.log (twoDimTempArray)
        
    

它们的结果都是[]

如何在 QML 属性变量二维数组中推送值?

【问题讨论】:

【参考方案1】:

将值动态添加到一维 QML variant 的一种方法是填充一个普通的 javascript 数组,然后将其分配给 QML variant

import QtQuick 2.0

Rectangle

    property variant oneDArray: []
    MouseArea
    
        anchors.fill: parent
        onClicked:
        
            var t = new Array (0)
            t.push(11)
            t.push(12)

            oneDArray = t

            console.log (oneDArray)
        
    

输出:

Starting /home/.../documents/test/build-junk-Desktop_Qt_5_1_0_GCC_64bit-Debug/junk...
QML debugging is enabled. Only use this in a safe environment.
[11,12]
/home/.../documents/test/build-junk-Desktop_Qt_5_1_0_GCC_64bit-Debug/junk exited with code 0

我对二维数组尝试了相同的方法,它可以工作。

【讨论】:

以上是关于如何将值推送到 QML 属性变量二维数组 - 动态?的主要内容,如果未能解决你的问题,请参考以下文章

如何在猫鼬中动态地将值推入对象的属性?

如何按键过滤数组并使用javascript将值推送到另一个数组

如何在nodeJS的mysql查询中将值推送到数组?

如何将值推送到本地存储?

将值推送到猫鼬模式中对象内的数组

将值推送到辅助数组javascript