我想知道是否有任何方法让 ListView 表现得像桌面控件,而不是滚动到鼠标拖动的反应?
ListView
我知道 interactive 属性,但我仍然希望 ListView 对点击,鼠标滚轮,箭头键做出反应,并且 ScrollBar .
interactive
ScrollBar
对于初学者来说,将 interactive 设置为 false 几乎会使视图固定不动 .
false
有一个 keyNavigationEnabled 属性,此时似乎不起作用(this critical bug) .
keyNavigationEnabled
所以需要做一些额外的工作才能让它按照你的意愿工作:
MouseArea { anchors.fill: ll onWheel: ll.flick(0, wheel.angleDelta.y * 5) } ListView { id: ll model: 50 width: 50 height: 200 spacing: 5 focus: true interactive: false boundsBehavior: Flickable.StopAtBounds Keys.onPressed: { if (event.key === Qt.Key_Up) flick(0, 500) else if (event.key === Qt.Key_Down) flick(0, -500) } delegate: Rectangle { width: 50 height: 50 color: "red" MouseArea { anchors.fill: parent onClicked: console.log("clicked") } } }
禁用交互,手动实施键导航,并使用背景 MouseArea 捕获车轮事件 . 请注意,您无需执行任何特殊操作即可启用非交互式视图的项目,无论视图是否为交互式视图都可以 .
MouseArea
1 回答
对于初学者来说,将
interactive
设置为false
几乎会使视图固定不动 .有一个
keyNavigationEnabled
属性,此时似乎不起作用(this critical bug) .所以需要做一些额外的工作才能让它按照你的意愿工作:
禁用交互,手动实施键导航,并使用背景
MouseArea
捕获车轮事件 . 请注意,您无需执行任何特殊操作即可启用非交互式视图的项目,无论视图是否为交互式视图都可以 .