如何访问特定组件
How to access a specific Component
我写了一个小的 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 的窗口管理器)
感谢您的帮助。
你可以使用 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...
}
}
我写了一个小的 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 的窗口管理器)
感谢您的帮助。
你可以使用 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...
}
}