2017-04-19 14 views
1

"클릭 한"신호를 처리하는 사용자 정의 Gtk.Image을 만들려고 시도하지만 사용자 정의 Gtk.Image에서 신호를 방출하려고 시도하지만 버튼 누르기 이벤트가있을 때 신호가 나오지 않는 이유를 알아낼 수 없습니다.Gtk.Image에 button_press_event를 추가 하시겠습니까?

클래스 WindowButton (Gtk.Image) gtype_name = "WindowButton"

__gsignals__ = { 
    "clicked" : (GObject.SIGNAL_ACTION,None,(Gdk.Event,)) 
} 

def __init__(self,*args,**kwargs): 
    Gtk.Image.__init__(self,*args,**kwargs) 

    self.set_from_stock(Gtk.STOCK_OK,Gtk.IconSize.SMALL_TOOLBAR) 

    self.event = Gdk.Event.new(Gdk.EventType.BUTTON_PRESS) 

    self.emit("button-press-event",self.event) 

    self.connect("button-press-event",self.on_button_press_event) 
    self.connect("clicked",self.do_clicked) 

def on_button_press_event(self,event): 
    print(ButtonPressEvent) 
    print(event) 

    self.emit("clicked",self.event) 

def do_clicked(self,event): 
    print('clicked') 
    print(event) 
+0

* * 무엇을 출력 할 수 없습니까? – mkrieger1

+0

버튼 누름 이벤트가있을 때 신호가 방출되지 않는 이유는 무엇입니까? – IKRadulov

답변

1

GtkImage은 '클릭'과 같은 어떤 신호도 없다. GtkImage를 EventBox에 넣고 신호를 EventBox에 연결하십시오.

+0

예, 알고 있습니다. 그래서 클릭 한 신호를 지원하는 새로운 Gtk.Image 유형을 만들려고합니다. – IKRadulov

+0

EventBox를 서브 클래스 화 한 다음 이미지를 내부에 패키징하고 모든 신호를 연결해야합니다. 당신이 서브 클래 싱에 대한 경험이 없다면, 당신이 시도했거나하고 싶은 것을 올리고, 다음 몇일 안에 나의 시간이 어떻게 유지되는지 보게 될 것입니다 ... – theGtknerd

+0

그럴 경우, 아마도 이벤트를 생성하려고 시도하지 않을 것입니다. 맞춤 Gtk.Image. button_press_event를 처리하기 때문에 EventBox 내부에 이미지를 패킹합니다. 하지만 컨테이너에 이미지가 나타나지 않을 것입니다. 일반적인 Gtk.Button처럼 Gdk.EventType.BUTTON_PRESS를받을 때 클릭 한 신호를 내 보내지 않는 이미지는 없습니다. – IKRadulov