List 滑动以在QML中删除
是否可以像在webOS上一样从QML中的列表视图中删除项目,即在滑动条目后,会出现“取消”和“删除”两种情况List 滑动以在QML中删除,list,qt,qt4,qml,List,Qt,Qt4,Qml,是否可以像在webOS上一样从QML中的列表视图中删除项目,即在滑动条目后,会出现“取消”和“删除”两种情况 我想使用qt4.7(因此QtQuick 1.1)QtQuick中没有可以处理手势信号的默认组件。有一个Qt实验室项目引入了一个可以做你想做的事情的手势区域。它没有用QtQuick 1.1打包,我不确定它的当前状态,但可以尝试一下。 否则,就没有QML解决方案,尽管Qt本身有手势编程支持帮助中有一个delete方法,请参见本例 ListView { id: listView
我想使用qt4.7(因此QtQuick 1.1)QtQuick中没有可以处理手势信号的默认组件。有一个Qt实验室项目引入了一个可以做你想做的事情的手势区域。它没有用QtQuick 1.1打包,我不确定它的当前状态,但可以尝试一下。
否则,就没有QML解决方案,尽管Qt本身有手势编程支持帮助中有一个delete方法,请参见本例
ListView {
id: listView
anchors.fill: parent
model: ListModel {
ListElement { sender: "Bob Bobbleton"; title: "How are you going?" }
ListElement { sender: "Rug Emporium"; title: "SALE! All rugs MUST go!" }
ListElement { sender: "Electric Co."; title: "Electricity bill 15/07/2016 overdue" }
ListElement { sender: "Tips"; title: "Five ways this tip will save your life" }
}
delegate: SwipeDelegate {
id: swipeDelegate
text: model.sender + " - " + model.title
width: parent.width
ListView.onRemove: SequentialAnimation {
PropertyAction {
target: swipeDelegate
property: "ListView.delayRemove"
value: true
}
NumberAnimation {
target: swipeDelegate
property: "height"
to: 0
easing.type: Easing.InOutQuad
}
PropertyAction {
target: swipeDelegate
property: "ListView.delayRemove"
value: false
}
}
onClicked: {
swipe.complete=false
}
swipe.right: Label {
id: deleteLabel
text: qsTr("Delete")
color: "white"
verticalAlignment: Label.AlignVCenter
padding: 12
height: parent.height
anchors.right: parent.right
SwipeDelegate.onClicked: listView.model.remove(index)
background: Rectangle {
color: deleteLabel.SwipeDelegate.pressed ? Qt.darker("tomato", 1.1) : "tomato"
}
}
}
}
这个答案很老套,已经过时了!参考下面的答案。