【发布时间】:2019-02-05 09:59:11
【问题描述】:
一年多以前,我询问了在使用 CharValidator() 时识别 TABS 的问题。现在可以使用定制的 CharValidator()。但是,TAB 顺序遵循创建访问它们的小部件的顺序,包括自动生成/计算的小部件(例如日期、BMI)。我想修改这个命令,而不需要修改大部分代码,也排除提到的不相关的代码。我遇到过这段代码:
order = (control1, control2, control3,......)
for i in range(len(order) - 1):
order[i+1].MoveAfterInTabOrder(order[i])
但没有明确说明如何实施/调用。谷歌搜索没有找到任何有用的东西'
代码是用 Python 2.7 和 wxPython 2.8 编写的
【问题讨论】:
-
这段代码有什么问题?
-
我的问题是我找到了这段代码 sn-p 但没有说明如何使用它。当我在创建小部件后立即放置它时,它没有任何效果。所以我的查询是我在哪里放置它以及如何调用它(如果不是自动的)。
-
您只需将所有控件放在订单列表中即可。然后根据需要重新洗牌。
MoveAfterInTabOrder的参数是您要移动的控件。因此,在您的情况下- order[i + 1] 是正在移动的窗口,而 order[i] 是正在移动的窗口。这意味着如果 order[i] 有焦点,当您按 TAB 时,焦点将移动到 order[i + 1]。