您的位置:首页 > 其它

Focus问题终结帖,setFocus, focusInEvent,focusOutEvent

2012-11-17 14:24 477 查看
focus问题曾经困扰了我一些时间。过程中也朋到了很多麻烦。现在总结一下,希望能够解决所有关于focus方面的问题。

即使setFocus了也不一定有效果。 帮助文档中说的很清楚,你不能在你的部件还不可见的时候setFocus,这样不行。解决这个问题的办法就是把setFocus()的操作放到我们这个部件的showEvent()里面去做。而我们一般可能喜欢放到构造函数最后去setFocus,这样往往是没有效果的,问题就在这。

另外,我们可能喜欢对一个widget或其派生的部件做setFocus,这也往往是没有效果的。因为一个widget即使获取了焦点,如果没有后续的处理,你是看不到的。也不会因为你的widget有了焦点,就自动的让里面的某个子部件,比如按钮有了焦点。 所以,我们在使用setFocus的时候,一般不要widget->setFocus(),而是button->setFocus()或者label->setFocus()。

所以,常见的会是这种形式:

void LoginForm::showEvent(QShowEvent *)

{

ui->loginButton->setFocus();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: