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...
정확한 사본이 저에게 잘 작동합니다. 아마 파일을 떨어 뜨리지 않을거야? 예를 들어 아이콘을 삭제할 수있는 아이콘이 보이나요? 그 화살에 더하기 기호가 있습니까? – KeyWeeUsr
그래, 아이콘이 바뀐 것을 알 수있다. @KeyWeeUsers 위와 같은 버전을 사용하고 있습니까? dropfile 작업이 호출되지 않는 것은 확실합니다. 찾기 [여기] (https://github.com/kivy/kivy/commit/ee43d7ebff09e654b5551c71d9840da6bf9cb9f4) 관련이 있는지 모르겠지만 dropfile 열거 자 색인에만 쉼표가 있다는 것이 이상하다는 것을 알았습니다. – KDumont
나는 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