gpt4 book ai didi

qml - 焦点未转移到 Listview 中单击的委托(delegate)

转载 作者:行者123 更新时间:2023-12-04 04:44:52 25 4
gpt4 key购买 nike

我有一个名为 AddressModel 的 ListModel 和一个 Listview 来显示模型内容,Delegate 包含两个矩形组件(充当向上和向下按钮)和一个 Text 组件,我的要求是将焦点转移到单击的委托(delegate)上,我在其中添加了 list.currentIndex = index 行委托(delegate),但它不起作用。请帮我解决这个问题。

这是我的 ListView.Qml 文件

import QtQuick 2.0

Rectangle {
id: idRect

width: 600 ; height: 300

Component {
id: idCompDelegate
Item {
id: idItmRow
width: 600
height: 50
Row {
id: idRow

spacing: 100

Rectangle {
id: idRectUp

width: 150
height: 50
color: "lightsteelblue"
radius: 8
Text {
anchors.centerIn: parent
text: "Up"
}

MouseArea {
id: idMouseAreaUp
anchors.fill: parent
propagateComposedEvents: true
onClicked: {

list.currentIndex = index //it's not working
((list.currentIndex)===0) ? console.log("Cannot Move towards Up"):list.model.move(list.currentIndex,list.currentIndex-1,1)


}
}
}

Text {
id: idCenterText
width: 100
text: firstName+" "+lastName
}
Rectangle {
id: idRectDown

width: 150
height: 50
color: "lightsteelblue"
radius: 8
Text {
anchors.centerIn: parent
text: "Down"
}
MouseArea {
id: idMouseAreaDown
anchors.fill: parent
onClicked: {
list.currentIndex = index //it's not working
(list.count === (list.currentIndex)+1)? console.log("Cannot Move towards Down"):list.model.move(list.currentIndex,list.currentIndex+1,1)
}
}
}
}


}


}


ListView {
id: list
width: parent.width
height: parent.height

model: AddressModel {}

delegate: idCompDelegate
highlight: Rectangle { color: "lightgrey" ; radius : 8 }
highlightFollowsCurrentItem: true
focus: true

spacing: 5


}
}

最佳答案

问题是您的线路 list.currentIndex = index不以 ; 结尾然后当您查看下一行时,它以 ( 开头所以解析器认为你正在尝试这样做:

list.currentIndex = index((list.count === (list.currentIndex)+1)

所以它假设你正在调用函数 index()这不存在。

只需替换你的两条线
list.currentIndex = index //it's not working

通过这些
list.currentIndex = index;

我认为总是把 ;在 QML 函数中的语句末尾,例如在单击处理程序中。其他人甚至放了 ;在每个属性声明的末尾避免这些问题!

关于qml - 焦点未转移到 Listview 中单击的委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18349408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com