내 창 모든 버튼에서 포커스을 비활성화하고 싶습니다. widget.set_can_focus(False)
으로 하나의 버튼을 비활성화 할 수 있지만이 기능을 내 윈도우의 모든 버튼에 적용하는 표준 방법을 알고 싶습니다.PyGTK의 여러 버튼에서 '버튼 포커스'를 비활성화하는 방법은 무엇입니까?
참고 : 저는 HBox
및 VBox
컨테이너를 사용하고 있습니다.
내 창 모든 버튼에서 포커스을 비활성화하고 싶습니다. widget.set_can_focus(False)
으로 하나의 버튼을 비활성화 할 수 있지만이 기능을 내 윈도우의 모든 버튼에 적용하는 표준 방법을 알고 싶습니다.PyGTK의 여러 버튼에서 '버튼 포커스'를 비활성화하는 방법은 무엇입니까?
참고 : 저는 HBox
및 VBox
컨테이너를 사용하고 있습니다.
버튼 목록을 반복하고 "duck typing"을 사용하여 포커스를 비활성화합니다. 예를 들어
:
button_widgets = [button1, button2, ..., buttonN]
for button in button_widgets:
button.set_can_focus(False)
UPDATE :
방법 버튼을 찾을 수있는 HBox의 또는 중 VBOX의 모든 요소를 통해 루프 : 당신이 HBoxes 또는 VBoxes의 이름에있는 경우
을 버튼이 포함 된 가장 낮은 레이어는 단순히 반복 할 수 있고 버튼을 확인한 다음 목록에 추가 할 수 있습니다.
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
출력을 : : 여기가 HBox의 모든 버튼을 출력하는 예입니다
<gtk.Button object at 0x1909320 (GtkButton at 0x171e8e0)>
<gtk.Button object at 0x19093c0 (GtkButton at 0x171e9a0)>
윈도우의 모든 버튼을 나열하는 방법을 알고 있습니까? 나는 PyGTK 함수를 의미합니다. – omar
당신은 확실히 당신이'set_can_focus' 줄까? 버튼을 사용하지 않으려면'set_sensitive'를 사용합니다. – Mark
아니요, 버튼에서 '포커스'를 비활성화합니다. 버튼이 아니야. @Mark – omar