2013-06-13 1 views
0

GTK FileChooserDialog (gtk 2.14, pygtk 2.12)를 사용하여 Python (2.5.2) 스크립트를 통해 내 IDE 내에 대화 상자를 만듭니다.GTK FileChooserDialog 내 스크립트가 충돌합니다.

내 파이썬 스크립트에서 나는 다음과 같은 클래스를 만들었습니다.

class GTKFileDialog(): 
    def __init__(self, *extension): 
     self.Selector = gtk.FileChooserDialog("dqfs", None, action=gtk.FILE_CHOOSER_ACTION_OPEN, buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK)) 
     self.Selector.set_default_response(gtk.RESPONSE_OK) 
     self.Selector.set_current_folder(os.getcwd()) 
     self.filter = gtk.FileFilter() 
     for ext in extensions: 
      self.filter.add_pattern(ext) 
     self.Selector.add_filter(self.filter) 
     # GTK button to finish the operation of selection 
     Button = gtk.Button("Select") 
     self.Selector.add_action_widget(Button, 10) 
     Button.show()   
    def run(self): 
     # Run the Selector object 
     out = self.Selector.run() 
     filename = None 
     if out == gtk.RESPONSE_OK: 
      filename = self.Selector.get_filename() 
     self.Selector.destroy() 
     # return the selected filename 
     return filename 

이제이 클래스의 개체를 만들 때마다 python 스크립트가 충돌하고 IDE가 종료됩니다.

ChooseFile = GTKFileDialog(".png") 
    ChooseFile.run() 

나는 예외가 무엇인지 알고 있습니다. 나는 그것이 run 기능을 실행하지 않는다고 확신합니다. try/except를 사용하여 시도했지만 작동하지 않았습니다. 어떤 몸이라도 내가 뭘 잘못하고 있다고 말할 수 있습니까? 어떤 아이디어라도 감사 할 것입니다. 도움 주셔서 대단히 감사합니다.

+0

은'클래스 GTKFileSelector'는 상속 무슨 뜻입니다 ..., run()에서 대화 상자를 파괴하는 대신 self.Selector.hide()을 시도하고 어떻게 볼 필요가 없습니다? 나는 당신이'class MyFileSelector (GTKFileSelector)'와 같은 것을 의미한다고 의심한다. –

+0

@WiData : 저를 위해 일하십시오. "이 클래스의 객체를 만들려고 할 때마다 파이썬 스크립트가 충돌하고 IDE가 닫힙니다."--- 콘솔에서 실행하는 것을 들어 본 적이 있습니까? – doublep

+0

@ali_m : 상속하지 않아야합니다. 이 클래스를 사용하여 파일 선택기 윈도우의 여러 인스턴스를 만듭니다. – WiData

답변

0

당신은

+0

입력에 감사드립니다. 그러나 나는 이미 이것을 시도했다. 차이 없음. – WiData

관련 문제