QT QLineEdit焦点和键盘问题

QLineEdit焦点和键盘问题

今天主要讨论如何使输入框失去焦点后键盘自动退出。 window 平板开发发现一个问题,当界面有输入框时,系统键盘弹出和隐藏不正确。
正常情况,进入界面输入框处于焦点状态,键盘弹出或者隐藏,点击输入框键盘弹出,点击非输入框区域键盘隐藏,退出界面键盘隐藏。
实际使用过程发现,首次进入界面,输入框处于焦点状态,键盘没有弹出,点击输入框键盘弹出,但是点击非输入框区域键盘并不隐藏,退出界面键盘有时隐藏有时弹出。

个人给出两个解决方案
第一通过界面监控事件,发现有点击事件主动清除输入框焦点,设置界面为焦点状态。(输入框不能把鼠标点击事件返回给父窗口)

bool XXXView::event(QEvent *ev)
{
	switch (ev->type())
	{
	case QEvent::MouseButtonRelease:
		this->setFocus();
		break;

	default:break;
	}

	return QWidget::event(ev); // 最后将事件交给上层对话框
}

方案二:设置界面获取焦点监控为点击获取焦点

this->setFocusPolicy(Qt::ClickFocus);

你可能感兴趣的:(qt)