高手帮个忙啊,,,
主窗口是QWidget
主窗口中有多个 QLineEdit
当点击QLineEdit 弹出虚拟键盘
但是QLineEdit被重写了,,
void LineEdit::focusInEvent(QFocusEvent *event)
{
this->setText("dddddd"); //当lineEdit获得焦点时,显示ddddd
Input *input = new Input((QWidget*)this->parent(),0); //虚拟键盘
input->setVisible(true); //显示虚拟键盘
}
当获得焦点的时候则弹出虚拟键盘,也就是input对象,,
当单击ESC 的时候就关闭虚拟键盘,,问题是这个虚拟键盘关闭不了,
关闭了又弹出来了一个,,,点ESC关闭会弹出更多,input是虚拟键盘类的对象
还有一个问题就是:这个虚拟键盘窗口没有在主窗口的中间,,而是偏移了,,
------解决方案--------------------
关闭虚拟键盘,又出来一个虚拟键盘,因为你控制虚拟键盘显示的事件是"获得焦点",虚拟键盘一关闭,焦点又回来了,自然又会出来一个。换个事件吧。
虚拟键盘不在窗口中间,自己把它move过去不就行了,不就是多写一行代码。不过也不应该在屏幕中间,应该跟着有焦点的输入控件移动,要不然会挡住控件的。