2014-02-10 1 views
1

해당 창을 삭제할 때 FileChooserDialog를 숨기고 싶습니다. 그냥 '취소'버튼에서 숨길 수 있지만 창에서 닫으면 응답하지 않고 충돌합니다.FileChooserDialog 이벤트 삭제

View the crash here

내가 순서대로,이 작업을 수행 할 때 충돌이 발생합니다

  • 내가 열 나는 창을 닫으려고

  • (그것을 잘 작동합니다) 'X'버튼 : 'OK'와 'CANCEL'버튼이 사라지고 FileFilter가 너무 높음

  • 다시 닫으려고합니다. 이제 창이 흰색으로 변합니다. 응답하지 않는 것 같습니다.
  • 다시 닫으려고합니다. 닫혔다.
  • 방금 ​​닫은 FileChooserDialog를 다시 열어 봅니다. 그것은 더 이상 작동하지 않으며 쉘은 이제 그것이 틀린 것을 알려줍니다.

내 코드는 간단하다 : 당신이 여기에 대화 위젯의 GdkWindow을 얻고, GdkWindow가없는 메소드의 호출을 시도 할 어떤 이유

self.__apri_FileChooserDialog = Gtk.FileChooserDialog(title='', \ 
                   parent=None, \ 
                   action=Gtk.FileChooserAction.OPEN, \ 
                   buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, \ 
                   Gtk.STOCK_OPEN, Gtk.ResponseType.OK)) 

self.__salva_FileChooserDialog.connect("delete-event", self.nascondi) 

def nascondi(self, widget, args=()): 
     widget.get_window().hide_on_delete() 

답변

2
def nascondi(self, widget, args=()): 
     widget.get_window().hide_on_delete() 

. 그게 작동하지 않을 수 있습니다 ...

어쨌든 hide_on_delete()은 내가 아는 한, 파이썬에서 약간 쓸모가 없습니다 (인수의 수가 신호와 일치하지 않기 때문에). 다행히도 스스로하는 것은 어렵지 않습니다. 이것을 시도하십시오 :

def on_delete_event (widget, event): 
    widget.hide() 
    return True 

self.__salva_FileChooserDialog.connect("delete-event", 
             on_delete_event) 
+1

2 개의 오류, 아마도 가장 좋은 것입니다 : 나는 틀린 FileChooserDialog에 이벤트를 연결하고있었습니다 : | – FrancescoN

관련 문제