gpt4 book ai didi

qt - 获取焦点(或标签)顺序

转载 作者:行者123 更新时间:2023-12-04 12:56:00 27 4
gpt4 key购买 nike

我使用 Qt Designer 设计了一个用户界面,并使用“编辑 Tab 键顺序”模式设置了 Tab 键顺序。

现在我想知道(出于其他原因,不是那么重要)是如何在 ui 中获取特定 QWidget 的选项卡顺序?

我的意思是,如果我有几个小部件,并说已经设置了 Tab 键顺序,是否有办法执行以下操作:

int nb = widget1->getTabOrder();

最佳答案

无法将 Tab 键顺序设为整数。
如果您查看 uic 工具从您的 ui 文件创建的 C++ 代码,它将调用 QWidget::setTabOrder()几次,该方法只需要两个 QWidget指针。因此,Qt 在内部甚至不会将 Tab 键顺序存储为整数,而是将其存储为 QWidget 的链表。指针。

您可以使用 QWidget::nextInFocusChain() 查询该链表和 QWidget::previousInFocusChain() .这为您提供了小部件的整个焦点链,其中包含按正确顺序包含在其中的所有子小部件。然后你可以通过检查它们的focusPolicy、启用状态和可见状态来获取真正的Tab顺序列表,就像QWidget::focusNextPrevChild()的内部实现一样。功能。如果你真的需要一个整数索引,你需要自己设计一个算法,从获得的 Tab 顺序列表计算索引。

关于qt - 获取焦点(或标签)顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20154635/

27 4 0