0

我想禁用窗口所有按钮的焦点。我可以禁用一个按钮,widget.set_can_focus(False)但我想知道将此功能应用于窗口中所有按钮的规范方法。

仅供参考,我正在使用HBoxVBox容器。

4

1 回答 1

3

我会遍历按钮列表,然后使用“鸭子打字”来禁用它们的焦点。

例如:

button_widgets = [button1, button2, ..., buttonN]

for button in button_widgets:
    button.set_can_focus(False)

更新:

如何遍历 HBox 或 VBox 中的所有元素以查找按钮:

如果您在包含按钮的最低层有 HBoxes 或 VBoxes 的名称,您可以简单地遍历它们,检查按钮,然后将它们添加到列表中。这是我打印出 HBox 中的所有按钮的示例:

import gtk
import pygtk
hbox = gtk.HBox()
button1 = gtk.Button('1')
button2 = gtk.Button('2')
hbox.add(button1)
hbox.add(button2)
for i in hbox:
    if type(i) == gtk.Button: print i

输出:

<gtk.Button object at 0x1909320 (GtkButton at 0x171e8e0)>
<gtk.Button object at 0x19093c0 (GtkButton at 0x171e9a0)>
于 2012-08-15T03:57:21.643 回答