赞
踩
Qt的移动开发即使在如今也不算完善,所以遇到坑是很正常的。不完善归完善,qml在界面的开发效率真的是令人难以拒绝。其中Qt Quick Controls 2里面的dialog使用起来有个问题,因为Qt本身绑定了dialog的取消确定信号,所以返回键按下的时候,dialog关了,当前页面也退出了,之前开发的时候当做技术债。现在有时间处理一下。
Qt Keys back键点击后 有按下和释放两个信号,按下的时候如果有dialog则不会触发按下的信号,而释放的信号与dialog无关。居于此我便做了差异化标志来实现。
main.qml
property bool unDialog:false
Keys.onBackPressed():{ unDialog = true }
Keys.onReleased():{
if(!event.accepted && currentPage.onKeyBack && unDialog){
currentPage.onKeyBack(event)
}
}
sub.qml
function onKeyBack(event){
if(event.types == keys.back){
//to do some thing
event.accepted = true
}
}
Dialog{
onRejected:{ //需要调用输入法的dialog
if(Qt.inputmethod.visible == true){
dialog.open()
}
}
}
都是纯手敲的代码,感觉离开ide手感很不好,有时间再过来调整格式及错误
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。