我在委托中给出了矩形。这导致了分隔线,它们是列表项本身的一部分(这是不期望的)。请建议如何使分隔符(行)与列表项无关。 如果我从委托中写出矩形,则只绘制线条。
目的是在按钮栏中的按钮(列表项)之间添加一行。 我的代码是:
ChinoListCatalog {
objectName : "alertButtonBar"
id: alertButtonBar
anchors.horizontalCenter: parent.horizontalCenter
width: 730
height: 66
orientation: ListView.Horizontal
delegate: AlertButton { //a separate file which returns buttons
id: alertButton
width: 100
onSignalButtonAction: alertButtonBar.onSignalButtonAction(index, action)
Rectangle { // Separator
colour : "white"
height: parent.height
visible : true
}
}
boundsBehavior: Flickable.StopAtBounds
pressDelay: 100
}
答案 0 :(得分:2)
也许是这样的?它是一个垂直的ListView,但它应该很容易适应垂直的。如果它是最后一个元素(height: (index === lm.count - 1 ? 0 : 1)
)
ListModel {
id: lm
ListElement {}
ListElement {}
ListElement {}
ListElement {}
ListElement {}
ListElement {}
ListElement {}
ListElement {}
}
ListView {
model: lm
width: 100
height: 200
delegate: Item {
width: 100
height: 42
Rectangle {
anchors.fill: parent
anchors.topMargin: 1
anchors.bottomMargin: 1
id: butt
Text {
anchors.centerIn: parent
text: index
}
}
Rectangle {
height: 1
color: 'green'
anchors {
left: butt.left
right: butt.right
top: butt.bottom
}
}
}
}
诀窍基本上不是使用按钮作为委托的根元素,而是使用单独的项目,您可以在其中按照您希望的方式排列所有内容。
如果您有任何疑问,请随时提出 如果您正在寻找答案,请不要忘记查看此答案。
问候
-m-
答案 1 :(得分:-1)
ListModel {
id: lm
ListElement {} ListElement {} ListElement {} ListElement {}
}
Rectangle
{
width : 200
height : 100
anchors.centerIn: parent
ListView {
model: lm
anchors.left: parent.left
width: 400
height: 50
orientation : ListView.Horizontal
delegate: Item {
width: 51
height: 60
Rectangle {
anchors.fill: parent
anchors.rightMargin: 1
anchors.topMargin : 10
id: butt
Rectangle {
anchors.centerIn: parent
width : 50
height : 50
color :'blue'
radius : 10
}
Rectangle {
id : leftOne
height: 50
width: 1
color: 'red'
visible : (index < 3) //last element in the list should not have separator
anchors {
left: butt.right
}
}
}
}
//spacing : 2
}
}