循环对象属性(QML)

时间:2017-07-26 08:15:31

标签: qt qml qtquick2 qtquickcontrols2

当我使用以下QML文件时,Qt在运行时抱怨:

import QtQuick 2.7
import QtQuick.Controls 2.0

Rectangle
{
    color: palette.grey

    property var spotButtonFunctions :
    {
        'EditViewTool' : function() {switchToEditViewToolButton.source = "../View/Icons/icon_game.png";},
        'SelectTool'   : function() {switchToSelectToolButton.source = "../View/Icons/icon_game.png";}
    }

    property var greyButtonFunctions :
    {
        'EditViewTool' : function() {switchToEditViewToolButton.source = "../View/Icons/icon_settings.png";},
        'SelectTool'   : function() {switchToSelectToolButton.source = "../View/Icons/icon_info.png";}
    }

    // View update slots.
    function onNotifyCurrentToolSignal(currentToolName)
    {
        // Grey all tool buttons.
        for (x in greyButtonFunctions)
            greyButtonFunctions[x]();

        // Spot the current tool button.
        if (currentToolName !== "")
            spotButtonFunctions[currentToolName]();
    }
}

错误消息与行for (x in greyButtonFunctions)

有关
  

错误:无法将QString指定为double

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

您正在分配Item的{​​{3}}。

如果你想要一个名为x的局部变量,你必须做for (var x in greyButtonFunctions)