Qt4:如何调整启动时获取焦点的小部件

9

如果我不重新实现 QMainWindow::showEvent()(其中包含该小部件的 setFocus() 方法),有没有办法在窗口加载时让某个小部件优先获得焦点?我使用 Qt4 的表单编辑器,但未能找到配置此选项的地方。

2个回答

15
您可以在Qt Designer或Qt Creator的Designer组件中设置Tab Order。在加载时,第一个小部件应该获得焦点。
许多用户希望能够仅使用键盘在小部件和控件之间进行导航。Qt允许用户使用TabShift+Tab键盘快捷键在输入小部件之间进行导航。默认的标签顺序基于小部件构建的顺序。尽管此顺序对许多用户来说可能足够,但通常最好明确指定标签顺序以使应用程序更易于使用。 设置标签顺序 要进入标签顺序编辑模式,请打开编辑菜单并选择编辑标签顺序。在此模式下,表单中的每个输入小部件都显示有一个数字,表示其在标签顺序中的位置。因此,如果用户将焦点放在第一个输入小部件上,然后按Tab键,焦点将移动到第二个输入小部件,依此类推。
标签顺序是通过单击正确顺序中的每个数字来定义的。您单击的第一个数字将变为红色,表示当前编辑的标签顺序链中的位置。与该数字相关联的小部件将成为标签顺序链中的第一个小部件。单击另一个小部件将使其成为标签顺序中的第二个小部件,依此类推。
重复此过程,直到您对表单中的标签顺序感到满意。如果您看到剩余小部件已经按正确的顺序排列,则无需单击每个输入小部件。已设置顺序的数字变为绿色,而尚未单击的数字仍保持蓝色。
如果出现错误,请双击任何数字之外或从表单的上下文菜单中选择重新开始以重新开始。如果您在表单上有许多小部件并且想要在标签顺序链的中间或末尾更改标签顺序,则可以在任何位置进行编辑。按住Ctrl并单击您要开始的数字。或者,在上下文菜单中选择从这里开始

11

我从未使用过表单编辑器,但是您可以在创建主窗口后,在您的代码中调用小部件setFocus方法


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接