2014-02-12 4 views
0

Gtk.TextView를 표시하고 숨기는 데 문제가 있습니다. 여기에 바로 Gtk.ButtonGtk.TextView 표시 및 숨기기

def Visualizza_indirizzi_IP_Button_clicked(self, widget, args=()): 

     textbuffer = self.__Indirizzi_IP_TextView.get_buffer() 
     textbuffer.set_text((' ').join(self.__configurazione['Indirizzi_IP'])) 
     self.__Indirizzi_IP_Window.show() 

마다의 클릭 이벤트에 대한 신호 처리기 아래

self.__Indirizzi_IP_TextView = builder.get_object('Indirizzi_IP_TextView') 
self.__Indirizzi_IP_Window = builder.get_object('Indirizzi_IP_Window') 

self.__Indirizzi_IP_Window.connect("delete-event", lambda widget, args=(): widget.hide()) 

내가 그것을 보여 시도해보십시오 UI는 여기에 코드 아래 는 레이드에 의해 drawed입니다 :

  • 제대로 작동 처음 창은 데이터 다음
  • 내가 그것을 닫고, 내가하려고하면 다시 엽니 다 나타납니다 나는 빈 창이있어

이 코드는 official tutorial

답변

1

내 생각에서 온다 때문에, 무엇을 해야할지하지 않습니다 당신은 delete-event 핸들러로 widget.hide()을 사용하지만, 그에서 다른 핸들러를 중지하지 않습니다 hide()로 실행하면 True가 반환되지 않습니다. 결과적으로 창은 삭제됩니다. hide()를 호출하고 True를 반환하는 자체 처리기를 작성해보십시오.

+0

감사합니다. 나는 항상 잊어 버린다, delete 이벤트에 대해서는 False, destroy 이벤트에 대해서는 True를 잊어 버린다. – FrancescoN