首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QT控件获得焦点有关问题

2012-05-24 
QT控件获得焦点问题高手帮个忙啊,,,主窗口是QWidget主窗口中有多个 QLineEdit当点击QLineEdit 弹出虚拟键

QT控件获得焦点问题
高手帮个忙啊,,,

主窗口是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过去不就行了,不就是多写一行代码。不过也不应该在屏幕中间,应该跟着有焦点的输入控件移动,要不然会挡住控件的。

热点排行