QT 接收按键消息慢
各位好,我好像没有分,不能给大家送分了,对不住。说一下我的问题,我是用QT开发机顶盒,现在是用QML做界面开发,QT接受遥控器按键是通过信号和槽的机制实现的,当底层收到按键值的时候转换成一个和QT的映射值,然后通过信号和槽调用相关函数,在函数里调用QT的processKeyEvent把消息和值传给QML中相应接收按键的地方。
问题就是当调用processKeyEvent的时候,QML中接受按键的地方半天才会收到消息,有时候很快,有时候连续按几次不响应,再按一次就一起连续响应。请各位帮帮忙,如果需要源码我会发上来,谢谢。 qt --------------------编程问答-------------------- 不一定是处理慢
可能是你key pressed之后导致界面更新什么的 使得消息被堵塞了
如果你不用qml 直接响应key pressed 还慢吗 也就是说 别用qml 直接原生QWidget测测
--------------------编程问答-------------------- 谢谢楼上的回复。
“可能是你key pressed之后导致界面更新什么的 使得消息被堵塞了”
通过加打印发现当按下遥控器的按键QML中接收按键的地方确实没有收到,也就是相应的打印没有打出来。
Keys.onPressed:{
console.log("event.key test = ",event.key);
/*
if(event.key == Qt.Key_Up )
{
event.accepted = true;
index = (index+4)%5;
indexChoose=0;
playIconAnimation2.start();
console.log(event.isAutoRepeat+"----QML---Key_Up---");
}
if(event.key == Qt.Key_Down)
{
event.accepted = true;
index = (index+1)%5;
indexChoose=0;
playIconAnimation2.start();
console.log(event.isAutoRepeat+"----QML---Key_Down---");
}
if(event.key == Qt.Key_Left || event.key == Qt.Key_Right)
{
indexChoose = (indexChoose+1)%2;
}
*/
}
补充:移动开发 , Qt