我是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"
}
}
}
}
}
}
答案 0 :(得分:0)
我在我的Windows模拟器上测试了你的代码,我甚至无法正确运行它;它只是给我一个白色的空白页面。也许是因为我没有在我的main.cpp中使用QQuickWindow。
要在我的模拟器上运行它,我将Window元素更改为Rectangle,它完美地正常工作。单击按钮时,背景颜色变为白色。
答案 1 :(得分:-2)
首先导入这两个标题
import QtQuick 2.0
import QtQuick.Window 2.1
您的窗口项 root
的花括号 {} 在哪里?