流中的列数(以 QML 为单位)



在Qt 5.9的QML应用程序中,我想在Flow中显示具有固定宽度的矩形。为了保持布局居中,我尝试动态调整其填充。要计算正确的值,尽管我需要知道当前的列数,例如colCount。有没有办法得到它?

下面是我想使用伪变量colCount执行的操作的代码示例:

import QtQuick 2.7
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
ApplicationWindow {
visible: true
width: 800
height: 600
title: qsTr("Example")
Flow {
anchors.fill: parent
leftPadding: parent.width > 200*colCount ? 0.5*(parent.width - 200*colCount) : 0
spacing: 0
Rectangle {
width: 200
height: 200
color: "red"
}
Rectangle {
width: 200
height: 200
color: "blue"
}
}
}

发布:)的魔力在我设法弄清楚这一点后不久,我在这里为可能需要它的人发布解决方案。

有一个属性 childrenRect.width 继承自Item可以派上用场。因此,列数 colCount可以计算为childrenRect.width / w,其中w是一个子项的宽度(对于FLOW的所有子项来说,它应该相同才能正常工作)。

在问题的代码示例中:

import QtQuick 2.7
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
ApplicationWindow {
visible: true
width: 800
height: 600
title: qsTr("Example")
Flow {
anchors.fill: parent
leftPadding: parent.width > childrenRect.width ? 0.5*(parent.width - childrenRect.width) : 0
spacing: 0
Rectangle {
width: 200
height: 200
color: "red"
}
Rectangle {
width: 200
height: 200
color: "blue"
}
}
}

相关内容

  • 没有找到相关文章