在带有Repeater的Qml GridLayout中,首先创建零x,y坐标,宽度和高度的项目。它发出Component.onComleted信号后。然后将项目移动到正确的坐标,然后调整它们的大小。
GridLayout {
id: inputPanel
property var tableModel
rowSpacing: 0
columnSpacing: 0
Repeater {
model: inputPanel.tableModel
delegate: KeyButton {
displayedText: model.display
Layout.minimumHeight: tableModel.elementSize.height
Layout.minimumWidth: tableModel.elementSize.width
Layout.maximumHeight: tableModel.elementSize.height
Layout.maximumWidth: tableModel.elementSize.width
Layout.alignment: Qt.AlignCenter
Layout.fillHeight: true
Layout.fillWidth: true
}
}
}
Keybutton.qml
Item {
id: keyButton
anchors.margins: 2.5
Rectangle {
anchors.fill: parent
}
}
当KeyButtons已经具有正确的x,y,宽度,高度时,有什么方法可以捕捉片刻。 (KeyButton.onXChanged不是最好的方法,因为它会在Grid Layout的大小也发生变化时发出)