2012-08-14 30 views
0

我想在我的窗口的所有按鈕中禁用重點。我可以用widget.set_can_focus(False)禁用一個按鈕,但我想知道將此功能應用於窗口中所有按鈕的規範方法。如何在PyGTK中的幾個按鈕中禁用「按鈕焦點」?

僅供參考,我使用HBoxVBox容器。

+0

您確定要'set_can_focus'?要禁用按鈕,我使用'set_sensitive'。 – Mark 2012-08-14 16:21:34

+0

不,我禁用按鈕中的「焦點」。不是按鈕。 @Mark – omar 2012-08-14 16:24:18

回答

3

我會遍歷按鈕列表,然後使用「鴨子打字」來禁用他們的焦點。

例如:

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

for button in button_widgets: 
    button.set_can_focus(False) 

UPDATE:

如何通過在一個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)> 
+0

你知道一種方法來列出窗口中的所有按鈕嗎?我的意思是一個PyGTK函數。 – omar 2012-08-15 14:54:42