考虑到documentation of GridLayout,这是我尝试过的:
import QtQuick 2.4
import QtQuick.Window 2.2
import QtQuick.Layouts 1.1
Window
{
visible: true
MainForm
{
GridLayout {
id: gridLayout
columns: 3
height: 100
width: 100
property int oneRow: 0
property int oneCol: 0
Rectangle { id: one; Layout.row :gridLayout.oneRow; Layout.column: gridLayout.oneCol;
height: 50; width: 50; color: "brown"}
Rectangle { height: 50; width: 50; color: "red" }
Rectangle { height: 50; width: 50; color: "blue"}
Rectangle { height: 50; width: 50; color: "green"}
Rectangle { height: 50; width: 50; color: "yellow"}
}
Component.onCompleted:
{
gridLayout.oneRow = 2
gridLayout.oneCol = 2
}
}
}
如果我从 Component.onCompleted
注释掉这段代码,
gridLayout.oneRow = 2
gridLayout.oneCol = 2
我明白了:
Whereas I want that brown square to "move to" the second row's last column.
所以,我写道:
gridLayout.oneRow = 1
gridLayout.oneCol = 2
在 Component.onCompleted
.
但后来我得到了以下内容:
which is NOT what I wanted.
请帮忙 .
1 回答
如果要更改
GridLayout
中某个项目的单元格编号,则需要将初始row number and column number分配给所有元素 yourself ,然后动态更改所需项目的位置,如下所示:现在,正如您所看到的,
Component.onCompleted
中的以下代码将棕色矩形移动到第2行的第3列 .