我想在我窗口的所有按钮中禁用焦点。我可以使用widget.set_can_focus(False)
禁用一个按钮,但我想知道将此功能应用于窗口中所有按钮的规范方法。
仅供参考,我使用HBox
和VBox
容器。
答案 0 :(得分:3)
我会遍历一个按钮列表,然后使用“duck typing”来禁用它们的焦点。
例如:
button_widgets = [button1, button2, ..., buttonN]
for button in button_widgets:
button.set_can_focus(False)
更新:
如何遍历HBox或VBox中的所有元素以查找按钮:
如果您在包含按钮的最低层有HBox或VBox的名称,您只需循环浏览它们,检查按钮然后将它们添加到列表中。这是一个打印出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)>