- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我设置了一个名为 的文件test1.qml 内容如下:
import QtQuick 2.6
import QtQuick.Layouts 1.3
Rectangle {
width: 800; height: 1000;
ColumnLayout {
anchors.centerIn: parent
// Header goes here
Repeater {
model: 3
delegate: MyRectangle {
width: 150
height: width
color: "#44ff0000"
}
}
// Footer goes here
}
}
import QtQuick 2.6
import QtQuick.Layouts 1.3
Rectangle {
width: 800; height: 1000;
ColumnLayout {
anchors.centerIn: parent
// Header goes here
Repeater {
model: 3
delegate: Column {
MyRectangle {
width: 150
height: width
color: "#44ff0000"
}
}
}
// Footer goes here
}
}
import QtQuick 2.6
Rectangle {
MouseArea {
anchors.fill: parent
onClicked: {
parent.height += 50
}
}
}
最佳答案
原因可能听起来很奇怪:[...]Layout
-family 不仅可以安排元素,还可以调整它们的大小。您不应该在其中设置或更改大小。
为了完成它的工作,当您不使用可用的附加属性来设置大小时,它将使用 implicitWidth/Height
您的Item
s。
如果您没有设置隐式尺寸,则在向布局添加新项目时,它们的隐式尺寸将设置为等于它们设置的尺寸。但这不是绑定(bind)!因此,如果您现在更新 height
, implicitHeight
将保持原始大小,因此布局不会对更改使用react。
如果添加 Column
对您的代表来说,情况发生了变化:Column
更新其implicitHeight
根据其 child 的边界矩形。如果您现在调整 Rectangle
的大小s 高度,Column
将适应 implicitHeight
和 Layout
会对变化使用react。
现在您有以下解决方案:
Layout
附加属性,设置和更改大小提示。 implicitHeight
而不是 height
.不过,这可能在语义上是错误的。 ColumnLayout
但只是一个普通的Column
当您不需要额外的布局功能(附加属性和调整项目的大小等)时,您的问题似乎就是这种情况。 Column {
anchors.centerIn: parent
spacing: 5
// Header goes here
Repeater {
model: 3
delegate:
Rectangle {
width: 150
height: width
color: "#44ff0000"
MouseArea {
anchors.fill: parent
onClicked: {
console.log(parent.implicitHeight)
parent.height += 50
}
}
}
}
// Footer goes here
}
关于qt - 当Repeater的代理高度改变时调整ColumnLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47363160/
我在 ColumnLayout 中有 QML Text 元素,如下所示: import QtQuick 2.0 import QtQuick.Layouts 1.1 Item { Rectan
如何将元素居中于 ColumnLayout ? 这是我的qml代码: ApplicationWindow { id: root visible: true width: 640
我正在尝试围绕 ColumnLayout 创建 ScrollView ,不幸的是我当前的代码不起作用。我知道 ListView,但在我的例子中,我需要创建可滚动的布局,因为它将包含异构元素。 Appl
例如,这有效: import QtQuick 2.5 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import QtQ
我想将 RowLayout 的项目布局在其容器内均匀分布。但是,当其父级是 ColumnLayout 时,以某种方式设置 RowLayout 的 Layout.fillWidth 属性不会产生任何效果
我正在使用 QT QML 开发应用程序。我在使用 QML 时遇到了一个奇怪的问题。我想使用 QML 分割和显示长文本。我正在使用 QT Text执行此任务的元素。我想将此文本放在 QT Columnl
我是一名优秀的程序员,十分优秀!