anchor用起来很方便,但是只有在parent对象下面或者同级兄弟对象之间才可以使用,否则报错如下:
QML Rectangle: Cannot anchor to an item that isn’t a parent or sibling.
见如下例子便很好了展示出这一问题。
import QtQuick 2.9
import QtQuick.Window 2.2
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Rectangle{
id:rec1;
x:100;
y:100;
width: 100;
height: 100;
color: "red"
border.color: "black"
Text {
id: name1
text: qsTr("1")
}
Component.onCompleted:
{
spliceTest();
var arr=["t","t","s","t","s","t"];
removeValue(arr,"s")
}
Rectangle{
id:rec3;
anchors.right: rec1.left;
anchors.top: rec1.top;
width: 100;
height: 100;
color: "red"
border.color: "black"
Text {
id: name3
text: qsTr("3")
}
}
}
Rectangle{
id:rec2;
anchors.left: rec1.right;
anchors.top: rec1.top;
width: 100;
height: 100;
color: "red"
border.color: "black"
Text {
id: name2
text: qsTr("2")
}
}
Rectangle{
id:rec4;
anchors.left: rec3.right;
anchors.top: rec3.top;
width: 100;
height: 100;
color: "red"
border.color: "black"
Text {
id: name4
text: qsTr("4")
}
}
function spliceTest() {
var ar = ["t","t"];
console.log(ar.length);
ar.splice(-1,"s");
console.log(ar)
console.log(ar.length)
}
function removeValue(arr,val)
{
arr.splice(0, 0,"a")
console.log(arr)
}
}
运行结果: