qtdeclarative/tests/manual/quicklayouts/gridlayout/uniformColumnTest.qml

112 lines
4.2 KiB
QML

// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
import QtQuick
import QtQuick.Window
import QtQuick.Layouts
import QtQuick.Controls
Window {
id: window
visible: true
width: grid.implicitWidth
height: grid.implicitHeight
title: "Window (" + grid.width + "x" + grid.height + ")"
GridLayout {
id: grid
columns: 3
rows: 3
Layout.fillWidth: true
Layout.fillHeight: true
uniformCellWidths: true
Repeater {
model: 3
Rectangle {
color: "#243a5e"
implicitWidth: 300
implicitHeight: 300
opacity: implicitWidth/600/2 + implicitHeight/600/2
Layout.fillWidth: true
Layout.fillHeight: true
Layout.maximumWidth: 1000
Layout.maximumHeight: 1000
Layout.minimumWidth: 20
Layout.minimumHeight: 20
Layout.alignment: Qt.AlignCenter
Text {
id: sizeText
anchors.centerIn: parent
text: "min :" + parent.Layout.minimumWidth + "x" + parent.Layout.minimumHeight
}
Text {
id: sizeText2
anchors.top: sizeText.bottom
anchors.horizontalCenter: sizeText.horizontalCenter
text: "want:" + parent.implicitWidth + "x" + parent.implicitHeight
}
Text {
id: sizeText3
anchors.top: sizeText2.bottom
anchors.horizontalCenter: sizeText2.horizontalCenter
text: "size :" + parent.width + "x" + parent.height
}
Text {
anchors.top: sizeText3.bottom
anchors.horizontalCenter: sizeText3.horizontalCenter
text: "max :" + parent.Layout.maximumWidth + "x" + parent.Layout.maximumHeight
}
Text {
anchors.bottom: sizeText.top
anchors.horizontalCenter: sizeText.horizontalCenter
text: index
font.pointSize: 14
}
WheelHandler {
acceptedModifiers: Qt.NoModifier
acceptedDevices: PointerDevice.Mouse | PointerDevice.TouchPad
onWheel: (event)=> {
if (event.angleDelta.y > 0)
implicitWidth += 5
else if (implicitWidth > 50)
implicitWidth -= 5
}
}
WheelHandler {
acceptedModifiers: Qt.ShiftModifier
acceptedDevices: PointerDevice.Mouse | PointerDevice.TouchPad
onWheel: (event)=> {
if (event.angleDelta.y > 0)
parent.Layout.minimumWidth = Math.min(parent.Layout.minimumWidth + 5, parent.Layout.maximumWidth)
else
parent.Layout.minimumWidth = Math.max(parent.Layout.minimumWidth - 5, 0)
}
}
WheelHandler {
acceptedModifiers: Qt.ControlModifier
acceptedDevices: PointerDevice.Mouse | PointerDevice.TouchPad
onWheel: (event)=> {
if (event.angleDelta.y > 0)
parent.Layout.maximumWidth = Math.min(parent.Layout.maximumWidth + 5, 2500)
else
parent.Layout.maximumWidth = Math.max(parent.Layout.maximumWidth - 5, parent.Layout.minimumWidth)
}
}
}
}
}
onWidthChanged: {
console.log("Preferred Size:", grid.implicitWidth, "x", grid.implicitHeight)
console.log(" Minimum Size:", grid.Layout.minimumWidth, "x", grid.Layout.minimumHeight)
console.log(" Maximum Size:", grid.Layout.maximumWidth, "x", grid.Layout.maximumHeight)
}
}