当前位置: 代码迷 >> QT开发 >> 软键盘的焦点移动,如何判断下上按钮
  详细解决方案

软键盘的焦点移动,如何判断下上按钮

热度:101   发布时间:2016-04-25 04:09:24.0
软键盘的焦点移动,怎么判断上下按钮
现在写了个软键盘的应用。
现在可以使用键盘输入文本了。
由于不支持鼠标,现在想通过键盘的方向键控制焦点按钮移动,左右键使用系统自带的就可以了,上下键移动焦点的时候,怎么判断移动到哪个按钮呢?
比如当前焦点在Q按钮上,按下down键,焦点移动到A按钮上。
因为按钮不规则排列,怎么算比较好呢。根据每个按钮的x,y坐标,遍历所有按钮,找到最近的按钮吗?这样的效率好像很低呢。

------解决方案--------------------
继承button或者安装事件监视器,处理按钮的:virtual void keyPressEvent ( QKeyEvent * event )
写一个巨大switch
if(up){
    switch(key)
    case key_D: buttonE->setfocus();  
        break;
}else if(down){
    switch(key)
    case key_D: buttonC->setfocus();  
        break;
}


要不然就做一个表,查表找到下一个button
------解决方案--------------------
引用:
引用:继承button或者安装事件监视器,处理按钮的:virtual void keyPressEvent ( QKeyEvent * event )
写一个巨大switch
C/C++ code?123456789if(up){    switch(key)    case key_D: buttonE->setfocus();     ……

查表,做一个按钮的关系表。
------解决方案--------------------
引用:
引用:继承button或者安装事件监视器,处理按钮的:virtual void keyPressEvent ( QKeyEvent * event )
写一个巨大switch
C/C++ code?123456789if(up){    switch(key)    case key_D: buttonE->setfocus();     ……

用一个数组...
  相关解决方案