在qml中的使用StackView,编译到手机后想通过back键进行pop操作,但是用正常的Keys过滤的时候由于StackView在pop的时候丢失焦点所以back键直接变成android默认的推出功能,然后就想用c++来写一个过滤器来获取Key_Back;
思路来源于http://www.mamicode.com/info-detail-1434390.html(原链接已跪,上个转发的)
先看效果=============》
1、在qml中正常处理Key_back
方法什么说的没什么说的,需要注意的是正常键盘事件需要获取焦点,如果焦点丢失那么事件也不会接受到,在StackView中遇到的问题就是这个原因,下面贴写正常的代码
Rectangle{
anchors.fill: parent;
color:"lightgreen";
Keys.onPressed: {
if (event.key == Qt.Key_Back) {
event.accepted = true;
}
}
focus:true;//必须要有焦点
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2、用c++处理
2.1
首先qt c