我写了一个小QML应用程序,每次点击一个按钮时都会创建一个Component
的对象。
import QtQuick 2.6
import QtQuick.Window 2.2
Window {
id: mainWindow
visible: true
width: 1280
height: 720
property int idNumberCounter: 1
Component {
id: testComponent
Rectangle {
id: rectangleMade
property int idNumber: 0
width: 100
height: 100
x: 100*idNumber
border.color: "blue"
}
}
//The button for creating
Rectangle {
id: buttonMakeRectangle
color: "red"
width: 50
height: 50
MouseArea {
anchors.fill: parent
onClicked: {
testComponent.createObject(mainWindow,idNumber:mainWindow.idNumberCounter);
mainWindow.idNumberCounter++;
}
}
}
}
我现在要做的是设置第二个按钮,例如使用idNumber = 3
(如果可用)更改矩形的x值。
有没有办法访问特定组件?
仅供参考:将MouseArea
添加到“rectagleMade”并简单地完成工作是不可能的,因为在实际应用中,这个矩形是通过另一个应用程序的dBus控制的。 (它将成为QtWayland的窗口经理)
感谢您的帮助。
答案 0 :(得分:0)
你可以使用js数组
Window {
property var myList: []
function createItem() {
var item = testComponent.createObject(mainWindow, idNumber:mainWindow.idNumberCounter);
myList.push(item);
mainWindow.idNumberCounter++;
}
function doSomehting() {
var item = myList[3];
// do something...
}
}