qt - 如何创建双向 SwipeView?
问题描述
在 QML 如何创建圆形 SwipeView?意味着如果我在最后一个元素,他们下一个项目应该是第一个。
SwipeView { id:视图间距:20 currentIndex:0 剪辑:true anchors.fill:parent }
或者我可以使用可以包含不同物品的不倒翁吗?
我正在使用此代码
PathView {
id: view
anchors.fill: parent
snapMode:PathView.NoSnap
property int widthAllList: (widthItemNotSelect*3)+60
property int widthItemNotSelect: parent.width-13
anchors.horizontalCenter: parent.horizontalCenter
preferredHighlightBegin: 0.5
preferredHighlightEnd: 0.5
model: ["qrc:/QML/Widget/AnalogClock.qml",
"qrc:/QML/Widget/Clock.qml"
,"qrc:/QML/Widget/Widget.qml"]
delegate: Loader {
width: parent.width
height: parent.height
source: modelData
}
path: Path {
id:myPath
startX: 0
startY: parent.height/2
PathLine { x:view.widthAllList; y:parent.height/2 }
}
}
解决方案
使用PathView的简单示例:
PathView {
id: view
anchors.fill: parent
snapMode: PathView.SnapToItem
model: ["Test1.qml","Test2.qml","Test3.qml"]
delegate: Loader {
width: parent.width
height: parent.height
source: modelData
}
path: Path {
startX: view.width/2; startY: view.height/2
PathQuad { x: view.width/2; y: -view.height*view.model.length; controlX: -view.width; controlY: view.height/2 }
PathQuad { x: view.width/2; y: view.height/2; controlX: view.width * view.model.length; controlY: view.height/2 }
}
}
上面示例中的路径仅供参考,您可以根据需要进行修改。
项目示例 - Test1.qml:
import QtQuick 2.9
Rectangle{
color: "green"
width: parent.width
height: parent.height
Text {
anchors.centerIn: parent
text: "page " + index
}
}
Tumbler
我猜可以使用相同的技巧来完成。
推荐阅读
- python - Convert and save PytorchTensor to .mat image on GPU in python
- python-3.x - 使用传递参数调用粘合作业和 lambda 函数的步骤函数
- arrays - Bash:如何从 for 循环中的多个文件的数组中删除目录的第一部分?
- databricks - Databricks Magic Sql - 导出数据
- docker - JFrog 容器注册表 (JCR) 不会加载
- javascript - Discord 移动机器人
- sql - 如何通过 ID 值增加列组?
- fullpage.js - Fullpage.js - 自动高度部分,但无论滚动方向如何滚动到部分顶部
- python - Django RF ErrorDetail:APIClient 需要此字段
- javascript - 使用 .each 将项目推送到 Puppeteer 中的数组