【发布时间】:2020-08-05 05:55:59
【问题描述】:
我正在尝试触发列表视图中的元素时触发计时器。我通过使用代码定义“运行”计时器来做到这一点(用户定义在哪里):
running: <containingItem>.ListView.isCurrentItem ? true : false
如果我不这样做,列表中的每个元素都会触发其开启计时器,因此计时器应该只针对选定的列表视图元素关闭。当我在列表视图的组件中执行此操作时,它可以工作 - 只有与所选项目关联的计时器触发,其余的则不触发。当我尝试在 ListView (以及所有包含对象)之外执行此操作时,它不起作用。我似乎无法以任何方式调用“ListView.isCurrentItem”命令。我在这里错过了什么?
我的代码是这样设置的:
Column {
id: lv1
ListView {
id: lv2
model: myModel
}
Component {
id: lv3
Item {
id: lv4
Rect {
Timer {
id: timer1
running: (lv4.ListView.isCurrentItem) ? true : false //this works correctly
}
}
}
}
}
Rect {
Timer {
id: timer2
running: (lv1.lv3.lv4.ListView.isCurrentItem ? true : false //this doesn't work correctly
}
}
当我运行此代码时,我收到一个错误:无法读取未定义的属性 'lv4'
【问题讨论】:
-
你能发布你的实际代码吗?
error: Cannot read property 'lv4' of undefined在这里没有真正意义,并且 ListView 的delegate没有设置。我知道你的错误是什么,但没有代码就无法真正解释清楚 -
我假设 lv4 打算成为您的 ListView 的代表?