需要为qml ListView(水平)中的我的列表项添加垂直分隔符(1倍宽度的行)

需要为qml ListView(水平)中的我的列表项添加垂直分隔符(1倍宽度的行),qml,Qml,我已经在代理中给出了矩形。这导致分隔行是列表项本身的一部分(这是不期望的)。请建议如何使分隔符(行)独立于列表项。 若我从委托中写出矩形,则只画一条线 目的是在buttonbar中的按钮(列表项)之间添加一行。 我的代码是: ChinoListCatalog { objectName : "alertButtonBar" id: alertButtonBar anchors.horizontalCenter: parent.horizontalCenter wid

我已经在代理中给出了矩形。这导致分隔行是列表项本身的一部分(这是不期望的)。请建议如何使分隔符(行)独立于列表项。 若我从委托中写出矩形,则只画一条线

目的是在buttonbar中的按钮(列表项)之间添加一行。 我的代码是:

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
}

也许是这样?它是一个垂直的列表视图,但是它应该很容易适应垂直的列表视图。如果该行是最后一个元素(
height:(index==lm.count-1?0:1)
),也可以省略该行

技巧基本上是,不使用按钮作为代理的根元素,而是一个单独的项目,您可以在其中按照希望的方式排列所有内容

如果您有任何问题,请随时提问。
请不要忘记检查这个答案,如果它是你正在寻找的

问候
-m-

列表模型{
id:lm
ListElement{}ListElement{}ListElement{}ListElement{}
}
矩形
{
宽度:200
身高:100
anchors.centerIn:父对象
列表视图{
型号:lm
anchors.left:parent.left
宽度:400
身高:50
方向:ListView.Horizontal
代表:议程项目{
宽度:51
身高:60
长方形{
锚定。填充:父级
1.右页边距:1
上边距:10
id:屁股
长方形{
anchors.centerIn:父对象
宽度:50
身高:50
颜色:'蓝色'
半径:10
}
长方形{
id:leftOne
身高:50
宽度:1
颜色:“红色”
可见:(索引<3)//列表中的最后一个元素不应具有分隔符
锚定{
左:屁股,右
}
}
}
}
//间距:2
}
}

缩进有问题,你不是忘了在它前面放一个空行吗?你试图解决的代理中包含了它的问题是什么?分隔符应该在两个按钮之间。分隔线与其所属的按钮重叠。我希望它出现在按钮之间(列表项)@user2436719空行的放置位置???@DumbDeveloper:为了帮助我们,帮助您,请始终尝试发布一个最小但有效的代码示例。用一个简单的
矩形
来代替
ChinoListCatalog
a
ListModel
AlertButton
可能就足够了。然而,它将允许我们复制您的代码并运行它,以查看您得到了什么。信号处理和行为方面的东西——我想——与你的问题也没有什么关系,不是吗?嗨,德姆,非常感谢你的意见。这正是我想要的。我将其用于垂直列表视图场景。非常感谢你的帮助。感谢:-)不客气!如果您能点击我答案旁边的“勾号”,我将不胜感激;-)
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
            }
        }
    }
}
    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
    }
 }