我正在我的应用程序中实现stackview。
SwipeView {
id: swipeView
anchors.fill: parent
currentIndex: showfooter.currentIndex
DashboardListView{
id:dashboard
}
Settings{
id:setting
}
Cart{
id:cart
}
}
StackView {
id: stackView
initialItem: Pane {
id: pane
}
}
当我使用push方法从DashboardListView加载一些其他屏幕(如SightDescription.qml)并在该屏幕上的某个地方克服其DashboardListView的调用槽。 DashboardListView屏幕控件正在获取onclick信号。是否有任何与堆栈视图相关的设置需要执行,我阅读了stackview的文档,但没有找到任何限制此行为的内容。
答案 0 :(得分:1)
似乎Pane
通常会拦截鼠标事件,因此较低的Item
无法接收它们。
当您在StackView
上推送新项目时Pane
变为visible: false
,因此不再关心输入。如果新Item
未处理鼠标事件,则它们将传播到较低的Item
。
为了防止这种情况,您有多种选择:
Item
上的所有StackView
都会处理鼠标事件,例如通过制作Pane
或MouseArea
根项目。MouseArea
直接放在仅StackView
Item
s时启用的StackView
下方
EventFilter
。但我认为1和2应该足够并且易于实施。