我有一个 StackView,里面有两个项目。这两个项目都应该处理一些键。
我会假设,如果currentItem
StackView 中的 不处理密钥,那么密钥将被转发到较低层,但显然情况并非如此。
下面的例子说明了这个问题。当按下例如“A”时,我看到该键layer1
由堆栈视图本身处理,但该键不由layer0
.
请注意,layer0
由于在layer1
properties.exitItem.visible = true
transitionFinished
import QtQuick 2.0
import QtQuick.Window 2.2
import QtQuick.Controls 1.4
Window {
id: mainWindow
visible: true
width: 1280
height: 720
color: "black"
Component {
id: layer0
Rectangle {
focus:true
width:200;height:200;color:"red"
Keys.onPressed: console.log("layer0")
}
}
Component {
id: layer1
Rectangle {
focus:true
width:200;height:200;color:"#8000FF00"
Keys.onPressed: console.log("layer1")
}
}
StackView {
id: stack
width: parent.width
height: parent.height
focus: true
Component.onCompleted: {
stack.push(layer0)
stack.push(layer1).focus=true
}
Keys.onPressed: {
console.log("StackView.onPressed")
}
delegate: StackViewDelegate {
function transitionFinished(properties)
{
properties.exitItem.visible = true
properties.exitItem.focus = true
}
}
}
}