Juh*_*nen 2 qt repeater qml qt5.5
为什么这样做:(有效 = 每个代表文本都出现在前一个下方)
Column {
Repeater {
model: ['test1', 'test2', 'test3']
delegate: Text {
text: modelData
}
}
}
Run Code Online (Sandbox Code Playgroud)
但这打破了布局,因为每个文本都出现在彼此之上:
Column {
Repeater {
model: ['test1', 'test2', 'test3']
delegate: Item {
Text {
text: modelData
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我创建一个单独的组件,也会发生同样的事情:
我的文本项.qml
import QtQuick 2.5
Item {
property string myText: ''
Text {
text: myText
}
}
Run Code Online (Sandbox Code Playgroud)
进而:
Column {
Repeater {
model: ['test1', 'test2', 'test3']
delegate: MyTextItem {
myText: modelData
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题很简单:列基于委托的 topItem 的几何形状,在您的初始情况下,Text 有一个基于内容的 implicitWidth 和 implicitHeight,但一个 Item 的几何形状为 0x0,导致它们重叠。解决方案是为 Item 建立适当的几何图形,例如它采用相同大小的 Text:
Column {
Repeater {
model: ['test1', 'test2', 'test3']
delegate: Item{
implicitWidth: txt.implicitWidth
implicitHeight: txt.implicitHeight
Text {
id: txt
text: modelData
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
37 次 |
最近记录: |