2017-02-11 1 views
1

Kivy 응용 프로그램에서 파일 끌어서 놓기를 처리하기 위해 아래 링크에 게시 된 코드를 실행하려고합니다. Kivy: drag n drop, get file pathKivy on_dropfile Not Being Calling

from kivy.app import App 
from kivy.core.window import Window 

class WindowFileDropExampleApp(App): 
    def build(self): 
     Window.bind(on_dropfile=self._on_file_drop) 
     return 

def _on_file_drop(self, window, file_path): 
    print(file_path) 
    return 

if __name__ == '__main__': 
    WindowFileDropExampleApp().run() 

내가 응용 프로그램 창에 파일을 드래그 할 때 '_on_file_drop'이벤트 기능을 트리거하지 않는 것. 이 작업을하는 데 큰 도움이됩니다. 내 전체 콘솔 출력은 다음과 같습니다.

$ python main.py 
[INFO    ] [Logger  ] Record log in C:\Users\\.kivy\logs\kivy_17-02-10_163.txt 
[INFO    ] [Kivy  ] v1.9.1 
[INFO    ] [Python  ] v3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] 
[INFO    ] [Factory  ] 179 symbols loaded 
[INFO    ] [Image  ] Providers: img_tex, img_dds, img_gif, img_sdl2, img_pil (img_ffpyplayer ignored) 
[INFO    ] [OSC   ] using <thread> for socket 
[INFO    ] [Window  ] Provider: sdl2 
[INFO    ] [GL   ] GLEW initialization succeeded 
[INFO    ] [GL   ] OpenGL version <b'4.4.0 - Build 20.19.15.4463'> 
[INFO    ] [GL   ] OpenGL vendor <b'Intel'> 
[INFO    ] [GL   ] OpenGL renderer <b'Intel(R) Iris(TM) Graphics 540'> 
[INFO    ] [GL   ] OpenGL parsed version: 4, 4 
[INFO    ] [GL   ] Shading version <b'4.40 - Build 20.19.15.4463'> 
[INFO    ] [GL   ] Texture max size <16384> 
[INFO    ] [GL   ] Texture max units <32> 
[INFO    ] [Shader  ] fragment shader: <b"WARNING: 0:7: '' : #version directive missing"> 
[INFO    ] [Shader  ] vertex shader: <b"WARNING: 0:7: '' : #version directive missing"> 
[INFO    ] [Window  ] auto add sdl2 input provider 
[INFO    ] [Window  ] virtual keyboard not allowed, single mode, not docked 
[INFO    ] [Base  ] Start application main loop 
[INFO    ] [Base  ] Leaving application in progress... 
+0

정확한 사본이 저에게 잘 작동합니다. 아마 파일을 떨어 뜨리지 않을거야? 예를 들어 아이콘을 삭제할 수있는 아이콘이 보이나요? 그 화살에 더하기 기호가 있습니까? – KeyWeeUsr

+0

그래, 아이콘이 바뀐 것을 알 수있다. @KeyWeeUsers 위와 같은 버전을 사용하고 있습니까? dropfile 작업이 호출되지 않는 것은 확실합니다. 찾기 [여기] (https://github.com/kivy/kivy/commit/ee43d7ebff09e654b5551c71d9840da6bf9cb9f4) 관련이 있는지 모르겠지만 dropfile 열거 자 색인에만 쉼표가 있다는 것이 이상하다는 것을 알았습니다. – KDumont

+0

나는 py2로 1.9.1을 달리고 3.5.2로 마스터했다. [multi_dropfile.py] (https://raw.githubusercontent.com/kivy/kivy/master/examples/miscellaneous/multiple_dropfile.py)와 대답 예제가 올바르게 작동했습니다. 코드의 오류 (정확한 예가 아닐 경우) 또는 손상된 설치 (재설치 시도) 일 수 있습니다. Afaik, 1.9.1은 공식적으로 2.7 및 3.4에서만 지원되므로 잘못된 것이있을 수 있습니다. [nightly wheel] (https://kivy.org/docs/installation/installation-windows.html)을 설치하십시오. – KeyWeeUsr

답변

1

이것은 admin으로 실행 중일 때 SDL2에서 발생하는 것으로 보입니다. 수정 사항을 더 파헤 치 겠지만이 문제는 기본 사용자 권한 (관리자 없음)을 사용하여 일시적으로 으로 해결됩니다.