gpt4 book ai didi

qt - 孙子打破中继器

转载 作者:行者123 更新时间:2023-12-04 15:13:41 24 4
gpt4 key购买 nike

为什么这样行得通:(行得通 = 每个委托(delegate)文本都出现在前一个文本的下方)

    Column {
Repeater {
model: ['test1', 'test2', 'test3']
delegate: Text {
text: modelData
}
}
}

enter image description here

但这会破坏布局,因为每个文本都出现在彼此的顶部:

    Column {
Repeater {
model: ['test1', 'test2', 'test3']
delegate: Item {
Text {
text: modelData
}
}
}
}

enter image description here

如果我创建一个单独的组件,同样的事情会发生:

MyTextItem.qml

import QtQuick 2.5

Item {
property string myText: ''
Text {
text: myText
}
}

然后:

    Column {
Repeater {
model: ['test1', 'test2', 'test3']
delegate: MyTextItem {
myText: modelData
}
}
}

enter image description here

最佳答案

问题很简单:Column 基于委托(delegate)的 topItem 的几何形状,在您的初始情况下,Text 具有基于内容的 implicitWidth 和 implicitHeight,但 Item 的几何形状为 0x0,导致它们重叠。解决方案是为 Item 建立适当的几何形状,例如,它采用与 Text 相同的大小:

Column {
Repeater {
model: ['test1', 'test2', 'test3']
delegate: Item{
<b>implicitWidth: txt.implicitWidth
implicitHeight: txt.implicitHeight</b>
Text {
id: txt
text: modelData
}
}
}
}

关于qt - 孙子打破中继器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60954872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com