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();
}
即使setFocus了也不一定有效果。 帮助文档中说的很清楚,你不能在你的部件还不可见的时候setFocus,这样不行。解决这个问题的办法就是把setFocus()的操作放到我们这个部件的showEvent()里面去做。而我们一般可能喜欢放到构造函数最后去setFocus,这样往往是没有效果的,问题就在这。
另外,我们可能喜欢对一个widget或其派生的部件做setFocus,这也往往是没有效果的。因为一个widget即使获取了焦点,如果没有后续的处理,你是看不到的。也不会因为你的widget有了焦点,就自动的让里面的某个子部件,比如按钮有了焦点。 所以,我们在使用setFocus的时候,一般不要widget->setFocus(),而是button->setFocus()或者label->setFocus()。
所以,常见的会是这种形式:
void LoginForm::showEvent(QShowEvent *)
{
ui->loginButton->setFocus();
}
相关文章推荐
- JAVA IO操作中的IN和OUT问题
- wordpress内存不足问题“Fatal error:out of memoryin etc...”
- VerifyRenderingInServerForm和EnableEventValidation引发的两个问题
- QT focusInEvent 事件
- B - Big Event in HDU(背包问题多重背包)
- Big Event in HDU+完全背包问题
- FocusInEvent()与FocusOutEvent()
- HDU 1171(Big Event in HDU)0-1背包问题
- ASP.NET MVC Unobtrusive JavaScript 实现 onfocusout 验证, onfocusin 清除错误
- Oracle 10.2 流复制问题(四)—— ORA-01341: LOGMINER OUT-OF-MEMORY in Oracle Streams
- jQuery自定义动画函数animate() easing: "easeInOutCirc"导致的animate()动画抖动问题解决方法
- SharpMap AjaxMapControl 中 Zoomin/Zoomout 操作时冻结问题
- SharpMap AjaxMapControl 中 Zoomin/Zoomout 操作时冻结问题
- Professional JS(13.3.1Event Object in DOM/IE/Cross-Browser/UI&Focus&Mouse and Wheel event[half])
- B - Big Event in HDU(背包问题01背包)
- Vlan ACL的IN和OUT的问题
- Tomcat溢出问题Exception in thread "http-apr-8080-exec-8" java.lang.OutOfMemoryError: PermGen space
- 问题描述 Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 解决方案[转] 一直都知道可以设置jvm he
- 解决event.layerX and event.layerY are broken and deprecated in WebKit的问题
- 通过focusInEvent和eventFilter两种方法改写控件颜色(自定义控件就是这么来的)