我想禁用窗口所有按钮的焦点。我可以禁用一个按钮,widget.set_can_focus(False)
但我想知道将此功能应用于窗口中所有按钮的规范方法。
仅供参考,我正在使用HBox
和VBox
容器。
我会遍历按钮列表,然后使用“鸭子打字”来禁用它们的焦点。
例如:
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)>