作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图找出一种通过为每个项目指定一种权重来按比例布局项目的方法。例如,Android 的方式是 layouts .
我试图实现它的方式如下:
import QtQuick 2.10
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
GridLayout {
columns: 4
width: 640
height: 480
Rectangle {
color: "red"
Layout.fillHeight: true
Layout.fillWidth: true
Layout.columnSpan: 1
}
Rectangle {
color: "#80000000"
Layout.fillHeight: true
Layout.fillWidth: true
Layout.columnSpan: 2
}
Rectangle {
color: "blue"
Layout.fillHeight: true
Layout.fillWidth: true
Layout.columnSpan: 1
}
}
我希望中间矩形的宽度是其他两个矩形的宽度之和,但实际上它们都是相等的宽度。
在布局附加属性上使用关系绑定(bind)似乎总是会导致奇怪的绑定(bind)循环。我知道我可以只使用 Row 来代替关系绑定(bind),但如果可能的话,我更愿意使用布局。
编辑
这似乎按照我想要的方式工作,但我不知道为什么会这样。它的行为就好像 preferredWidth
值是项目的重量。
import QtQuick 2.10
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
RowLayout {
width: 640
height: 480
Rectangle {
color: "red"
Layout.fillHeight: true
Layout.fillWidth: true
Layout.preferredWidth: 1
}
Rectangle {
color: "#80000000"
Layout.fillHeight: true
Layout.fillWidth: true
Layout.preferredWidth: 2
}
Rectangle {
color: "blue"
Layout.fillHeight: true
Layout.fillWidth: true
Layout.preferredWidth: 1
}
}
最佳答案
不确定是否有意,但 Layout.preferredWidth
(或 ColumnLayouts 的 Layout.preferredHeight
)可以用作“权重”。当同时指定 Layout.minimumWidth 时,事情就会中断,但我认为在尝试根据权重实现布局时指定最小尺寸没有多大意义。
import QtQuick 2.10
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
RowLayout {
width: 640
height: 480
Rectangle {
color: "red"
Layout.fillHeight: true
Layout.fillWidth: true
Layout.preferredWidth: 1
}
Rectangle {
color: "#80000000"
Layout.fillHeight: true
Layout.fillWidth: true
Layout.preferredWidth: 2
}
Rectangle {
color: "blue"
Layout.fillHeight: true
Layout.fillWidth: true
Layout.preferredWidth: 1
}
}
关于qt - QML 布局 : How to give weights to items in a row or column layout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50651369/
我是一名优秀的程序员,十分优秀!