Мне кажется, что это не получиться сделать с помощью GridLayout'а (или будет достаточно сложно). Возможно
TableView или
SplitView лучше подойдут для этого.
Быстрое, костыльное решение с помощью SplitView:
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 1.4
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
SplitView {
anchors.fill: parent
orientation: Qt.Vertical
SplitView {
anchors.left: parent.left
anchors.right: parent.right
height: parent.height / 2
orientation: Qt.Horizontal
Rectangle {
id: rect1
width: parent.width / 2
onWidthChanged: {rect3.width = width}
color: "lightblue"
}
Rectangle {
id: rect2
width: parent.width / 2
onWidthChanged: {rect4.width = width}
color: "lightgreen"
}
}
SplitView {
anchors.left: parent.left
anchors.right: parent.right
height: parent.height / 2
orientation: Qt.Horizontal
Rectangle {
id: rect3
width: parent.width / 2
onWidthChanged: {rect1.width = width}
color: "blue"
}
Rectangle {
id: rect4
width: parent.width / 2
onWidthChanged: {rect2.width = width}
color: "green"
}
}
}
}