我有一个QT5应用程序,其中我必须模拟外部事件上的Tab键按下,即我需要循环浏览Taborder列表并在下一个元素上设置setFocus。
我找不到以编程方式获取制表顺序列表的任何方法。最好的方法是什么?
答案 0 :(得分:1)
将QWidget::
nextInFocusChain() / previousInFocusChain()和setFocus()方法或setFocus()插槽组合起来怎么样? (还有其他设置焦点的方法,所有方法都在Qt文档中进行了交叉链接。)
nextInFocusChain()
和previousInFocusChain()
provide public API access到似乎控制跳位顺序的基础私有成员。例如,您可以看到它们正在QWidget::setTabOrder()中使用。
可以使用父窗口小部件的QWidget::focusWidget()或QApplication::focusWidget()找到当前的焦点窗口小部件。请注意,如果QWidget::focusWidget()
当前没有焦点,则也将按焦点顺序返回第一个小部件。此起点可用于以选项卡顺序构建小部件列表。