QML:如何在转发器之外访问项目的ID?

时间:2014-03-18 16:19:04

标签: repeater qml

我是QML的新手,当我尝试从转发器内部访问元素时遇到问题。

我有一个转发器,它生成每个带有鼠标区域的矩形。单击鼠标区域应更改之前定义的背景窗口 root 的颜色,但单击时我只得到:" ReferenceError:root未定义"。如果我在转发器外部创建一个带有鼠标区域的矩形,那么它可以工作。那么如何使用转发器内部的鼠标区域访问转发器外部的元素?感谢您的任何帮助。我现在真的遇到了这个问题。

import QtQuick 2.0
import QtQuick.Window 2.1

Window
id: root
visible: true
width: 600; height: 600
color: "black"
{
Grid
{
    columns: 3
    spacing: 20
    x: 20
    y: 20
    Repeater{
        id: repeater1
        model: 3
        Rectangle {
            color: "White"; width: 100; height: 100;
            radius: 10
            MouseArea
            {
                anchors.fill: parent
                onClicked:
                {
                    root.color="white"
                }
            }
        }
    }
}
}

2 个答案:

答案 0 :(得分:0)

我在我的Windows模拟器上测试了你的代码,我甚至无法正确运行它;它只是给我一个白色的空白页面。也许是因为我没有在我的main.cpp中使用QQuickWindow。

要在我的模拟器上运行它,我将Window元素更改为Rectangle,它完美地正常工作。单击按钮时,背景颜色变为白色。

答案 1 :(得分:-2)

首先导入这两个标题

import QtQuick 2.0
import QtQuick.Window 2.1

您的窗口项 root

的花括号 {} 在哪里?