当前位置:编程学习 > wap >>

qt什么时候会发生CloseSoftwareInputPanel事件

小弟,最近写个软键盘程序,最初是照着Qt4.7.0库中的InputPanel扩展的里面有一段是这样的
bool MyInputPanelContext::filterEvent(const QEvent* event)
{
    if (event->type() == QEvent::RequestSoftwareInputPanel) {//输入请求,这个好理解,双击输入栏就会发生这个请求
        updatePosition();
        inputPanel->show();
        return true;
    } else if (event->type() == QEvent::CloseSoftwareInputPanel) {//但是关闭事件,什么时候会发生呢,或者说是怎么引起的呢
        inputPanel->hide();
        return true;
    }
    return false;
}
为啥提这个问题呢,是由于我把该程序扩展后,注:是在软键盘中,使得每个键的focusPolicy为clickFocus而不是原本示例中的的Nofocus,这样做的目的是:每按一个键后,焦点停在被按键上面,从而知道每次按了哪个键。好,但是问题出来了,当第一次双击文本框输入时,弹出软键盘,能够进行输入,但是当再次点击主界面时,就是说使焦点回到主界面时,这时,不能输入 了,点一下,软键盘就消失了。
最后,我发现是产生了CloseSoftwareInputPanel事件,从而调用了hide函数。所以我就把它注释了,才能继续输入的。

--------------------编程问答-------------------- 我也是这样解决的,请问还有更好的办法吗,qt给的demo不会这样
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,