软键盘的焦点移动,怎么判断上下按钮
现在写了个软键盘的应用。
现在可以使用键盘输入文本了。
由于不支持鼠标,现在想通过键盘的方向键控制焦点按钮移动,左右键使用系统自带的就可以了,上下键移动焦点的时候,怎么判断移动到哪个按钮呢?
比如当前焦点在Q按钮上,按下down键,焦点移动到A按钮上。
因为按钮不规则排列,怎么算比较好呢。根据每个按钮的x,y坐标,遍历所有按钮,找到最近的按钮吗?这样的效率好像很低呢。
[解决办法]
继承button或者安装事件监视器,处理按钮的:virtual voidkeyPressEvent ( QKeyEvent * event )
写一个巨大switch
if(up){
switch(key)
case key_D: buttonE->setfocus();
break;
}else if(down){
switch(key)
case key_D: buttonC->setfocus();
break;
}