property int num: 0
Component{
id:mainmenu
Item{
id:menuChange
x:10
y:150 -5
width:370
height: 350
ListModel {
id:dialModel
ListElement {
name:"车辆信息"
iconB:"qrc:/leftPanel/images/leftPanel/carThemeBg.png"
iconC:"qrc:/leftPanel/images/leftPanel/cartheme.png"
icon: "qrc:/leftPanel/images/leftPanel/carInfo.png"
}
ListElement {
name:"设置"
iconB:"qrc:/leftPanel/images/leftPanel/carThemeBg.png"
iconC:"qrc:/leftPanel/images/leftPanel/cartheme.png"
icon: "qrc:/leftPanel/images/leftPanel/setting.png"
}
ListElement {
name:"主题"
iconB:"qrc:/leftPanel/images/leftPanel/carThemeBg.png"
iconC:"qrc:/leftPanel/images/leftPanel/cartheme.png"
icon: "qrc:/leftPanel/images/leftPanel/theme.png"
}
}
Component {
id: delegate
Item{
id:wrapper
width: 100
height: 200
scale: PathView.itemScale
z:PathView.itemZ
//只有当包里有一个类时,各个元素之间间隔才会相等
//例如,若将image id:name1 写到imageBg外,与image并列,间隔就不固定了,不好控制
Image {
id:imageBg
source:wrapper.PathView.isCurrentItem?"qrc:/leftPanel/images/leftPanel/themeBg.png": iconB
Image {
id: name1
anchors.horizontalCenter: parent.horizontalCenter
y:23
source: icon
}
Text {
id: nameText
text: name
anchors.horizontalCenter: imageBg.horizontalCenter
anchors.top: imageBg.top
anchors.topMargin: -30
font.pointSize: 16
color: wrapper.PathView.isCurrentItem ? "#1ae9fd" : "white"
}
}
}
}
PathView {
id:pathView40
// anchors.fill: parent //do not using,else location is changed
anchors.centerIn: menuChange.Center
// x:10
// y:170
// anchors.verticalCenter: leftPanel.verticalCenter
model: dialModel
delegate: delegate
currentIndex:num
path: Path {
startX: 0; startY:menuChange.height/2
PathAttribute{name: "itemScale";value: 1}
PathAttribute{name:"itemZ";value: 0}
PathLine{x:185;y:menuChange.height/2+15}
PathAttribute{name:"itemScale";value: 1.4}
PathAttribute{name:"itemZ";value: 1}
PathLine{x:370;y:menuChange.height/2}
PathAttribute{name:"itemScale";value: 1}
PathAttribute{name:"itemZ";value: 0}
}
pathItemCount: 3
preferredHighlightBegin: 0.5
preferredHighlightEnd: 0.5
}
}
}
SequentialAnimation{
ScriptAction{script: {carCom.visible = false;leftLoader.active = true;leftLoader.sourceComponent = mainmenu}}
PauseAnimation {duration: 500}
ScriptAction{script: num = 0}
PauseAnimation {duration: 1500}
ScriptAction{script: num = 1}
PauseAnimation {duration: 1500}
ScriptAction{script: num = 0}
PauseAnimation {duration: 1500}
ScriptAction{script: num = 2}
PauseAnimation {duration: 1500}
ScriptAction{script: num = 0}
loops: 2
}
QML model-veiw 元素之间间隔控制
最新推荐文章于 2023-09-19 13:48:32 发布