我使用 Qt Designer 设计了一个用户界面,并使用“编辑选项卡顺序”模式设置了选项卡顺序。
现在我想知道(出于其他原因,不是那么重要)是如何获取 ui 中特定 QWidget 的 Tab 键顺序?
我的意思是,如果我有几个小部件,并且说选项卡顺序已设置,有没有办法执行类似的操作:
int nb = widget1->getTabOrder();
无法以整数形式获取 Tab 键顺序。
如果您查看 uic 工具从 ui 文件创建的 C++ 代码,它将调用QWidget::setTabOrder()
几次,这个方法只需要两次QWidget
指针。因此,Qt 内部甚至不将 Tab 键顺序存储为整数,而是存储为链表QWidget
指针。
您可以使用以下命令查询该链表QWidget::nextInFocusChain()
and QWidget::previousInFocusChain()
。这为您提供了小部件的整个焦点链,其中包含按正确顺序排列的所有子小部件。然后你可以通过检查它们的 focusPolicy、启用状态和可见状态来获取真正的 Tab 键顺序列表,就像内部实现一样QWidget::focusNextPrevChild()
功能。如果您确实需要一个整数索引,则需要自己设计一种算法,根据获得的 Tab 键顺序列表计算索引。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)