当我使用以下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
有什么想法吗?
答案 0 :(得分:3)
您正在分配Item
的{{3}}。
如果你想要一个名为x的局部变量,你必须做for (var x in greyButtonFunctions)